/*******************************************************************************
 * Copyright (c) 2022 BestSolution.at and others.
 *  
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v.2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0.
 *  
 * SPDX-License-Identifier: EPL-2.0
 *  
 * Contributors:
 *     BestSolution.at - initial API and implementation
 *******************************************************************************/
/*
 * generated by Xtext
 */
package org.eclipse.fx.ide.fxgraph.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;

@Singleton
public class FXGraphGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class ModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Model");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cPackageAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cPackagePackageDeclarationParserRuleCall_0_0 = (RuleCall)cPackageAssignment_0.eContents().get(0);
		private final Assignment cImportsAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cImportsImportParserRuleCall_1_0 = (RuleCall)cImportsAssignment_1.eContents().get(0);
		private final Assignment cComponentDefAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cComponentDefComponentDefinitionParserRuleCall_2_0 = (RuleCall)cComponentDefAssignment_2.eContents().get(0);
		
		//Model:
		//	package=PackageDeclaration?
		//	imports+=Import*
		//	componentDef=ComponentDefinition;
		@Override public ParserRule getRule() { return rule; }

		//package=PackageDeclaration? imports+=Import* componentDef=ComponentDefinition
		public Group getGroup() { return cGroup; }

		//package=PackageDeclaration?
		public Assignment getPackageAssignment_0() { return cPackageAssignment_0; }

		//PackageDeclaration
		public RuleCall getPackagePackageDeclarationParserRuleCall_0_0() { return cPackagePackageDeclarationParserRuleCall_0_0; }

		//imports+=Import*
		public Assignment getImportsAssignment_1() { return cImportsAssignment_1; }

		//Import
		public RuleCall getImportsImportParserRuleCall_1_0() { return cImportsImportParserRuleCall_1_0; }

		//componentDef=ComponentDefinition
		public Assignment getComponentDefAssignment_2() { return cComponentDefAssignment_2; }

		//ComponentDefinition
		public RuleCall getComponentDefComponentDefinitionParserRuleCall_2_0() { return cComponentDefComponentDefinitionParserRuleCall_2_0; }
	}

	public class PackageDeclarationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.PackageDeclaration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPackageKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//PackageDeclaration:
		//	'package' name=QualifiedName;
		@Override public ParserRule getRule() { return rule; }

		//'package' name=QualifiedName
		public Group getGroup() { return cGroup; }

		//'package'
		public Keyword getPackageKeyword_0() { return cPackageKeyword_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }
	}

	public class ImportElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Import");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Alternatives cImportedNamespaceAlternatives_1_0 = (Alternatives)cImportedNamespaceAssignment_1.eContents().get(0);
		private final RuleCall cImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0_0 = (RuleCall)cImportedNamespaceAlternatives_1_0.eContents().get(0);
		private final RuleCall cImportedNamespaceQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cImportedNamespaceAlternatives_1_0.eContents().get(1);
		
		//Import:
		//	'import' importedNamespace=(QualifiedNameWithWildcard | QualifiedName);
		@Override public ParserRule getRule() { return rule; }

		//'import' importedNamespace=(QualifiedNameWithWildcard | QualifiedName)
		public Group getGroup() { return cGroup; }

		//'import'
		public Keyword getImportKeyword_0() { return cImportKeyword_0; }

		//importedNamespace=(QualifiedNameWithWildcard | QualifiedName)
		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }

		//(QualifiedNameWithWildcard | QualifiedName)
		public Alternatives getImportedNamespaceAlternatives_1_0() { return cImportedNamespaceAlternatives_1_0; }

		//QualifiedNameWithWildcard
		public RuleCall getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0_0() { return cImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_0_0; }

		//QualifiedName
		public RuleCall getImportedNamespaceQualifiedNameParserRuleCall_1_0_1() { return cImportedNamespaceQualifiedNameParserRuleCall_1_0_1; }
	}

	public class ComponentDefinitionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ComponentDefinition");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDynamicRootAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Keyword cDynamicRootDynamicKeyword_0_0 = (Keyword)cDynamicRootAssignment_0.eContents().get(0);
		private final Keyword cComponentKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameValidIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
		private final Keyword cControlledbyKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cControllerAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cControllerJvmTypeReferenceParserRuleCall_3_0_1_0 = (RuleCall)cControllerAssignment_3_0_1.eContents().get(0);
		private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
		private final Keyword cStyledwithKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
		private final Alternatives cAlternatives_3_1_1 = (Alternatives)cGroup_3_1.eContents().get(1);
		private final Assignment cPreviewCssFilesAssignment_3_1_1_0 = (Assignment)cAlternatives_3_1_1.eContents().get(0);
		private final RuleCall cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_0_0 = (RuleCall)cPreviewCssFilesAssignment_3_1_1_0.eContents().get(0);
		private final Group cGroup_3_1_1_1 = (Group)cAlternatives_3_1_1.eContents().get(1);
		private final Keyword cLeftSquareBracketKeyword_3_1_1_1_0 = (Keyword)cGroup_3_1_1_1.eContents().get(0);
		private final Assignment cPreviewCssFilesAssignment_3_1_1_1_1 = (Assignment)cGroup_3_1_1_1.eContents().get(1);
		private final RuleCall cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_1_0 = (RuleCall)cPreviewCssFilesAssignment_3_1_1_1_1.eContents().get(0);
		private final Group cGroup_3_1_1_1_2 = (Group)cGroup_3_1_1_1.eContents().get(2);
		private final Keyword cCommaKeyword_3_1_1_1_2_0 = (Keyword)cGroup_3_1_1_1_2.eContents().get(0);
		private final Assignment cPreviewCssFilesAssignment_3_1_1_1_2_1 = (Assignment)cGroup_3_1_1_1_2.eContents().get(1);
		private final RuleCall cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_2_1_0 = (RuleCall)cPreviewCssFilesAssignment_3_1_1_1_2_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_3_1_1_1_3 = (Keyword)cGroup_3_1_1_1.eContents().get(3);
		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
		private final Keyword cResourcefileKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
		private final Assignment cPreviewResourceBundleAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
		private final RuleCall cPreviewResourceBundleSTRINGTerminalRuleCall_3_2_1_0 = (RuleCall)cPreviewResourceBundleAssignment_3_2_1.eContents().get(0);
		private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
		private final Keyword cExtraClasspathKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
		private final Keyword cLeftSquareBracketKeyword_3_3_1 = (Keyword)cGroup_3_3.eContents().get(1);
		private final Assignment cPreviewClasspathEntriesAssignment_3_3_2 = (Assignment)cGroup_3_3.eContents().get(2);
		private final RuleCall cPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_2_0 = (RuleCall)cPreviewClasspathEntriesAssignment_3_3_2.eContents().get(0);
		private final Group cGroup_3_3_3 = (Group)cGroup_3_3.eContents().get(3);
		private final Keyword cCommaKeyword_3_3_3_0 = (Keyword)cGroup_3_3_3.eContents().get(0);
		private final Assignment cPreviewClasspathEntriesAssignment_3_3_3_1 = (Assignment)cGroup_3_3_3.eContents().get(1);
		private final RuleCall cPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_3_1_0 = (RuleCall)cPreviewClasspathEntriesAssignment_3_3_3_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_3_3_4 = (Keyword)cGroup_3_3.eContents().get(4);
		private final Group cGroup_3_4 = (Group)cUnorderedGroup_3.eContents().get(4);
		private final Keyword cSceneSetupKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
		private final Assignment cSceneDefinitionAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
		private final CrossReference cSceneDefinitionComponentDefinitionCrossReference_3_4_1_0 = (CrossReference)cSceneDefinitionAssignment_3_4_1.eContents().get(0);
		private final RuleCall cSceneDefinitionComponentDefinitionQualifiedNameParserRuleCall_3_4_1_0_1 = (RuleCall)cSceneDefinitionComponentDefinitionCrossReference_3_4_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cScriptsAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cScriptsScriptParserRuleCall_5_0 = (RuleCall)cScriptsAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Assignment cDefinesAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
		private final RuleCall cDefinesDefineParserRuleCall_6_0_0 = (RuleCall)cDefinesAssignment_6_0.eContents().get(0);
		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
		private final Keyword cCommaKeyword_6_1_0 = (Keyword)cGroup_6_1.eContents().get(0);
		private final Assignment cDefinesAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
		private final RuleCall cDefinesDefineParserRuleCall_6_1_1_0 = (RuleCall)cDefinesAssignment_6_1_1.eContents().get(0);
		private final Assignment cRootNodeAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cRootNodeElementParserRuleCall_7_0 = (RuleCall)cRootNodeAssignment_7.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//ComponentDefinition:
		//	dynamicRoot?='dynamic'? 'component' name=ValidID (('controlledby' controller=JvmTypeReference)? & ('styledwith'
		//	(previewCssFiles+=STRING | '[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'))? & ('resourcefile'
		//	previewResourceBundle=STRING)? & ('extraClasspath' '[' previewClasspathEntries+=STRING (','
		//	previewClasspathEntries+=STRING)* ']')? & ('sceneSetup' sceneDefinition=[ComponentDefinition|QualifiedName])?)
		//	'{'
		//	scripts+=Script? (defines+=Define (',' defines+=Define)*)?
		//	rootNode=Element
		//	'}';
		@Override public ParserRule getRule() { return rule; }

		//dynamicRoot?='dynamic'? 'component' name=ValidID (('controlledby' controller=JvmTypeReference)? & ('styledwith'
		//(previewCssFiles+=STRING | '[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'))? & ('resourcefile'
		//previewResourceBundle=STRING)? & ('extraClasspath' '[' previewClasspathEntries+=STRING (','
		//previewClasspathEntries+=STRING)* ']')? & ('sceneSetup' sceneDefinition=[ComponentDefinition|QualifiedName])?) '{'
		//scripts+=Script? (defines+=Define (',' defines+=Define)*)? rootNode=Element '}'
		public Group getGroup() { return cGroup; }

		//dynamicRoot?='dynamic'?
		public Assignment getDynamicRootAssignment_0() { return cDynamicRootAssignment_0; }

		//'dynamic'
		public Keyword getDynamicRootDynamicKeyword_0_0() { return cDynamicRootDynamicKeyword_0_0; }

		//'component'
		public Keyword getComponentKeyword_1() { return cComponentKeyword_1; }

		//name=ValidID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_2_0() { return cNameValidIDParserRuleCall_2_0; }

		//('controlledby' controller=JvmTypeReference)? & ('styledwith' (previewCssFiles+=STRING | '[' previewCssFiles+=STRING
		//(',' previewCssFiles+=STRING)* ']'))? & ('resourcefile' previewResourceBundle=STRING)? & ('extraClasspath' '['
		//previewClasspathEntries+=STRING (',' previewClasspathEntries+=STRING)* ']')? & ('sceneSetup'
		//sceneDefinition=[ComponentDefinition|QualifiedName])?
		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }

		//('controlledby' controller=JvmTypeReference)?
		public Group getGroup_3_0() { return cGroup_3_0; }

		//'controlledby'
		public Keyword getControlledbyKeyword_3_0_0() { return cControlledbyKeyword_3_0_0; }

		//controller=JvmTypeReference
		public Assignment getControllerAssignment_3_0_1() { return cControllerAssignment_3_0_1; }

		//JvmTypeReference
		public RuleCall getControllerJvmTypeReferenceParserRuleCall_3_0_1_0() { return cControllerJvmTypeReferenceParserRuleCall_3_0_1_0; }

		//('styledwith' (previewCssFiles+=STRING | '[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'))?
		public Group getGroup_3_1() { return cGroup_3_1; }

		//'styledwith'
		public Keyword getStyledwithKeyword_3_1_0() { return cStyledwithKeyword_3_1_0; }

		//previewCssFiles+=STRING | '[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'
		public Alternatives getAlternatives_3_1_1() { return cAlternatives_3_1_1; }

		//previewCssFiles+=STRING
		public Assignment getPreviewCssFilesAssignment_3_1_1_0() { return cPreviewCssFilesAssignment_3_1_1_0; }

		//STRING
		public RuleCall getPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_0_0() { return cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_0_0; }

		//'[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'
		public Group getGroup_3_1_1_1() { return cGroup_3_1_1_1; }

		//'['
		public Keyword getLeftSquareBracketKeyword_3_1_1_1_0() { return cLeftSquareBracketKeyword_3_1_1_1_0; }

		//previewCssFiles+=STRING
		public Assignment getPreviewCssFilesAssignment_3_1_1_1_1() { return cPreviewCssFilesAssignment_3_1_1_1_1; }

		//STRING
		public RuleCall getPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_1_0() { return cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_1_0; }

		//(',' previewCssFiles+=STRING)*
		public Group getGroup_3_1_1_1_2() { return cGroup_3_1_1_1_2; }

		//','
		public Keyword getCommaKeyword_3_1_1_1_2_0() { return cCommaKeyword_3_1_1_1_2_0; }

		//previewCssFiles+=STRING
		public Assignment getPreviewCssFilesAssignment_3_1_1_1_2_1() { return cPreviewCssFilesAssignment_3_1_1_1_2_1; }

		//STRING
		public RuleCall getPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_2_1_0() { return cPreviewCssFilesSTRINGTerminalRuleCall_3_1_1_1_2_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_3_1_1_1_3() { return cRightSquareBracketKeyword_3_1_1_1_3; }

		//('resourcefile' previewResourceBundle=STRING)?
		public Group getGroup_3_2() { return cGroup_3_2; }

		//'resourcefile'
		public Keyword getResourcefileKeyword_3_2_0() { return cResourcefileKeyword_3_2_0; }

		//previewResourceBundle=STRING
		public Assignment getPreviewResourceBundleAssignment_3_2_1() { return cPreviewResourceBundleAssignment_3_2_1; }

		//STRING
		public RuleCall getPreviewResourceBundleSTRINGTerminalRuleCall_3_2_1_0() { return cPreviewResourceBundleSTRINGTerminalRuleCall_3_2_1_0; }

		//('extraClasspath' '[' previewClasspathEntries+=STRING (',' previewClasspathEntries+=STRING)* ']')?
		public Group getGroup_3_3() { return cGroup_3_3; }

		//'extraClasspath'
		public Keyword getExtraClasspathKeyword_3_3_0() { return cExtraClasspathKeyword_3_3_0; }

		//'['
		public Keyword getLeftSquareBracketKeyword_3_3_1() { return cLeftSquareBracketKeyword_3_3_1; }

		//previewClasspathEntries+=STRING
		public Assignment getPreviewClasspathEntriesAssignment_3_3_2() { return cPreviewClasspathEntriesAssignment_3_3_2; }

		//STRING
		public RuleCall getPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_2_0() { return cPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_2_0; }

		//(',' previewClasspathEntries+=STRING)*
		public Group getGroup_3_3_3() { return cGroup_3_3_3; }

		//','
		public Keyword getCommaKeyword_3_3_3_0() { return cCommaKeyword_3_3_3_0; }

		//previewClasspathEntries+=STRING
		public Assignment getPreviewClasspathEntriesAssignment_3_3_3_1() { return cPreviewClasspathEntriesAssignment_3_3_3_1; }

		//STRING
		public RuleCall getPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_3_1_0() { return cPreviewClasspathEntriesSTRINGTerminalRuleCall_3_3_3_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_3_3_4() { return cRightSquareBracketKeyword_3_3_4; }

		//('sceneSetup' sceneDefinition=[ComponentDefinition|QualifiedName])?
		public Group getGroup_3_4() { return cGroup_3_4; }

		//'sceneSetup'
		public Keyword getSceneSetupKeyword_3_4_0() { return cSceneSetupKeyword_3_4_0; }

		//sceneDefinition=[ComponentDefinition|QualifiedName]
		public Assignment getSceneDefinitionAssignment_3_4_1() { return cSceneDefinitionAssignment_3_4_1; }

		//[ComponentDefinition|QualifiedName]
		public CrossReference getSceneDefinitionComponentDefinitionCrossReference_3_4_1_0() { return cSceneDefinitionComponentDefinitionCrossReference_3_4_1_0; }

		//QualifiedName
		public RuleCall getSceneDefinitionComponentDefinitionQualifiedNameParserRuleCall_3_4_1_0_1() { return cSceneDefinitionComponentDefinitionQualifiedNameParserRuleCall_3_4_1_0_1; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }

		//scripts+=Script?
		public Assignment getScriptsAssignment_5() { return cScriptsAssignment_5; }

		//Script
		public RuleCall getScriptsScriptParserRuleCall_5_0() { return cScriptsScriptParserRuleCall_5_0; }

		//(defines+=Define (',' defines+=Define)*)?
		public Group getGroup_6() { return cGroup_6; }

		//defines+=Define
		public Assignment getDefinesAssignment_6_0() { return cDefinesAssignment_6_0; }

		//Define
		public RuleCall getDefinesDefineParserRuleCall_6_0_0() { return cDefinesDefineParserRuleCall_6_0_0; }

		//(',' defines+=Define)*
		public Group getGroup_6_1() { return cGroup_6_1; }

		//','
		public Keyword getCommaKeyword_6_1_0() { return cCommaKeyword_6_1_0; }

		//defines+=Define
		public Assignment getDefinesAssignment_6_1_1() { return cDefinesAssignment_6_1_1; }

		//Define
		public RuleCall getDefinesDefineParserRuleCall_6_1_1_0() { return cDefinesDefineParserRuleCall_6_1_1_0; }

		//rootNode=Element
		public Assignment getRootNodeAssignment_7() { return cRootNodeAssignment_7; }

		//Element
		public RuleCall getRootNodeElementParserRuleCall_7_0() { return cRootNodeElementParserRuleCall_7_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
	}

	public class ElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Element");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cTypeAssignment_0.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Group cGroup_1_0 = (Group)cAlternatives_1.eContents().get(0);
		private final Group cGroup_1_0_0 = (Group)cGroup_1_0.eContents().get(0);
		private final Keyword cLeftParenthesisKeyword_1_0_0_0 = (Keyword)cGroup_1_0_0.eContents().get(0);
		private final Assignment cValueAssignment_1_0_0_1 = (Assignment)cGroup_1_0_0.eContents().get(1);
		private final RuleCall cValueSimpleValuePropertyParserRuleCall_1_0_0_1_0 = (RuleCall)cValueAssignment_1_0_0_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_1_0_0_2 = (Keyword)cGroup_1_0_0.eContents().get(2);
		private final Group cGroup_1_0_1 = (Group)cGroup_1_0.eContents().get(1);
		private final Keyword cIdKeyword_1_0_1_0 = (Keyword)cGroup_1_0_1.eContents().get(0);
		private final Assignment cNameAssignment_1_0_1_1 = (Assignment)cGroup_1_0_1.eContents().get(1);
		private final RuleCall cNameValidIDParserRuleCall_1_0_1_1_0 = (RuleCall)cNameAssignment_1_0_1_1.eContents().get(0);
		private final Group cGroup_1_1 = (Group)cAlternatives_1.eContents().get(1);
		private final Group cGroup_1_1_0 = (Group)cGroup_1_1.eContents().get(0);
		private final Keyword cIdKeyword_1_1_0_0 = (Keyword)cGroup_1_1_0.eContents().get(0);
		private final Assignment cNameAssignment_1_1_0_1 = (Assignment)cGroup_1_1_0.eContents().get(1);
		private final RuleCall cNameValidIDParserRuleCall_1_1_0_1_0 = (RuleCall)cNameAssignment_1_1_0_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1_1_1 = (Keyword)cGroup_1_1.eContents().get(1);
		private final Group cGroup_1_1_2 = (Group)cGroup_1_1.eContents().get(2);
		private final Alternatives cAlternatives_1_1_2_0 = (Alternatives)cGroup_1_1_2.eContents().get(0);
		private final Assignment cPropertiesAssignment_1_1_2_0_0 = (Assignment)cAlternatives_1_1_2_0.eContents().get(0);
		private final RuleCall cPropertiesPropertyParserRuleCall_1_1_2_0_0_0 = (RuleCall)cPropertiesAssignment_1_1_2_0_0.eContents().get(0);
		private final Assignment cStaticPropertiesAssignment_1_1_2_0_1 = (Assignment)cAlternatives_1_1_2_0.eContents().get(1);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_0_1_0 = (RuleCall)cStaticPropertiesAssignment_1_1_2_0_1.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_1_1_2_0_2 = (Assignment)cAlternatives_1_1_2_0.eContents().get(2);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_0_2_0 = (RuleCall)cStaticCallPropertiesAssignment_1_1_2_0_2.eContents().get(0);
		private final Assignment cDefaultChildrenAssignment_1_1_2_0_3 = (Assignment)cAlternatives_1_1_2_0.eContents().get(3);
		private final RuleCall cDefaultChildrenElementParserRuleCall_1_1_2_0_3_0 = (RuleCall)cDefaultChildrenAssignment_1_1_2_0_3.eContents().get(0);
		private final Group cGroup_1_1_2_1 = (Group)cGroup_1_1_2.eContents().get(1);
		private final Keyword cCommaKeyword_1_1_2_1_0 = (Keyword)cGroup_1_1_2_1.eContents().get(0);
		private final Alternatives cAlternatives_1_1_2_1_1 = (Alternatives)cGroup_1_1_2_1.eContents().get(1);
		private final Assignment cPropertiesAssignment_1_1_2_1_1_0 = (Assignment)cAlternatives_1_1_2_1_1.eContents().get(0);
		private final RuleCall cPropertiesPropertyParserRuleCall_1_1_2_1_1_0_0 = (RuleCall)cPropertiesAssignment_1_1_2_1_1_0.eContents().get(0);
		private final Assignment cStaticPropertiesAssignment_1_1_2_1_1_1 = (Assignment)cAlternatives_1_1_2_1_1.eContents().get(1);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_1_1_1_0 = (RuleCall)cStaticPropertiesAssignment_1_1_2_1_1_1.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_1_1_2_1_1_2 = (Assignment)cAlternatives_1_1_2_1_1.eContents().get(2);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_1_1_2_0 = (RuleCall)cStaticCallPropertiesAssignment_1_1_2_1_1_2.eContents().get(0);
		private final Assignment cDefaultChildrenAssignment_1_1_2_1_1_3 = (Assignment)cAlternatives_1_1_2_1_1.eContents().get(3);
		private final RuleCall cDefaultChildrenElementParserRuleCall_1_1_2_1_1_3_0 = (RuleCall)cDefaultChildrenAssignment_1_1_2_1_1_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_1_1_3 = (Keyword)cGroup_1_1.eContents().get(3);
		private final Group cGroup_1_2 = (Group)cAlternatives_1.eContents().get(2);
		private final Group cGroup_1_2_0 = (Group)cGroup_1_2.eContents().get(0);
		private final Keyword cIdKeyword_1_2_0_0 = (Keyword)cGroup_1_2_0.eContents().get(0);
		private final Assignment cNameAssignment_1_2_0_1 = (Assignment)cGroup_1_2_0.eContents().get(1);
		private final RuleCall cNameValidIDParserRuleCall_1_2_0_1_0 = (RuleCall)cNameAssignment_1_2_0_1.eContents().get(0);
		private final Keyword cCreatedbyKeyword_1_2_1 = (Keyword)cGroup_1_2.eContents().get(1);
		private final Assignment cFactoryAssignment_1_2_2 = (Assignment)cGroup_1_2.eContents().get(2);
		private final RuleCall cFactoryIDTerminalRuleCall_1_2_2_0 = (RuleCall)cFactoryAssignment_1_2_2.eContents().get(0);
		private final Group cGroup_1_2_3 = (Group)cGroup_1_2.eContents().get(3);
		private final Keyword cLeftCurlyBracketKeyword_1_2_3_0 = (Keyword)cGroup_1_2_3.eContents().get(0);
		private final Assignment cValuesAssignment_1_2_3_1 = (Assignment)cGroup_1_2_3.eContents().get(1);
		private final RuleCall cValuesFactoryValueElementParserRuleCall_1_2_3_1_0 = (RuleCall)cValuesAssignment_1_2_3_1.eContents().get(0);
		private final Group cGroup_1_2_3_2 = (Group)cGroup_1_2_3.eContents().get(2);
		private final Keyword cCommaKeyword_1_2_3_2_0 = (Keyword)cGroup_1_2_3_2.eContents().get(0);
		private final Assignment cValuesAssignment_1_2_3_2_1 = (Assignment)cGroup_1_2_3_2.eContents().get(1);
		private final RuleCall cValuesFactoryValueElementParserRuleCall_1_2_3_2_1_0 = (RuleCall)cValuesAssignment_1_2_3_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_1_2_3_3 = (Keyword)cGroup_1_2_3.eContents().get(3);
		
		//Element:
		//	type=JvmTypeReference (('(' value=SimpleValueProperty ')')? ('id' name=ValidID)? | ('id' name=ValidID)? '{'
		//	((properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//	defaultChildren+=Element) (',' (properties+=Property | staticProperties+=StaticValueProperty |
		//	staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element))*)?
		//	'}' | ('id' name=ValidID)? 'createdby' factory=ID ('{' values+=FactoryValueElement (',' values+=FactoryValueElement)*
		//	'}')?);
		@Override public ParserRule getRule() { return rule; }

		//type=JvmTypeReference (('(' value=SimpleValueProperty ')')? ('id' name=ValidID)? | ('id' name=ValidID)? '{'
		//((properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element) (',' (properties+=Property | staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element))*)? '}' | ('id' name=ValidID)? 'createdby'
		//factory=ID ('{' values+=FactoryValueElement (',' values+=FactoryValueElement)* '}')?)
		public Group getGroup() { return cGroup; }

		//type=JvmTypeReference
		public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }

		//JvmTypeReference
		public RuleCall getTypeJvmTypeReferenceParserRuleCall_0_0() { return cTypeJvmTypeReferenceParserRuleCall_0_0; }

		//('(' value=SimpleValueProperty ')')? ('id' name=ValidID)? | ('id' name=ValidID)? '{' ((properties+=Property |
		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element) (','
		//(properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element))*)? '}' | ('id' name=ValidID)? 'createdby' factory=ID ('{' values+=FactoryValueElement (','
		//values+=FactoryValueElement)* '}')?
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//('(' value=SimpleValueProperty ')')? ('id' name=ValidID)?
		public Group getGroup_1_0() { return cGroup_1_0; }

		//('(' value=SimpleValueProperty ')')?
		public Group getGroup_1_0_0() { return cGroup_1_0_0; }

		//'('
		public Keyword getLeftParenthesisKeyword_1_0_0_0() { return cLeftParenthesisKeyword_1_0_0_0; }

		//value=SimpleValueProperty
		public Assignment getValueAssignment_1_0_0_1() { return cValueAssignment_1_0_0_1; }

		//SimpleValueProperty
		public RuleCall getValueSimpleValuePropertyParserRuleCall_1_0_0_1_0() { return cValueSimpleValuePropertyParserRuleCall_1_0_0_1_0; }

		//')'
		public Keyword getRightParenthesisKeyword_1_0_0_2() { return cRightParenthesisKeyword_1_0_0_2; }

		//('id' name=ValidID)?
		public Group getGroup_1_0_1() { return cGroup_1_0_1; }

		//'id'
		public Keyword getIdKeyword_1_0_1_0() { return cIdKeyword_1_0_1_0; }

		//name=ValidID
		public Assignment getNameAssignment_1_0_1_1() { return cNameAssignment_1_0_1_1; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_1_0_1_1_0() { return cNameValidIDParserRuleCall_1_0_1_1_0; }

		//('id' name=ValidID)? '{' ((properties+=Property | staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element) (',' (properties+=Property |
		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element))*)?
		//'}'
		public Group getGroup_1_1() { return cGroup_1_1; }

		//('id' name=ValidID)?
		public Group getGroup_1_1_0() { return cGroup_1_1_0; }

		//'id'
		public Keyword getIdKeyword_1_1_0_0() { return cIdKeyword_1_1_0_0; }

		//name=ValidID
		public Assignment getNameAssignment_1_1_0_1() { return cNameAssignment_1_1_0_1; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_1_1_0_1_0() { return cNameValidIDParserRuleCall_1_1_0_1_0; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1_1_1() { return cLeftCurlyBracketKeyword_1_1_1; }

		//((properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element) (',' (properties+=Property | staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element))*)?
		public Group getGroup_1_1_2() { return cGroup_1_1_2; }

		//properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element
		public Alternatives getAlternatives_1_1_2_0() { return cAlternatives_1_1_2_0; }

		//properties+=Property
		public Assignment getPropertiesAssignment_1_1_2_0_0() { return cPropertiesAssignment_1_1_2_0_0; }

		//Property
		public RuleCall getPropertiesPropertyParserRuleCall_1_1_2_0_0_0() { return cPropertiesPropertyParserRuleCall_1_1_2_0_0_0; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_1_1_2_0_1() { return cStaticPropertiesAssignment_1_1_2_0_1; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_0_1_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_0_1_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_1_1_2_0_2() { return cStaticCallPropertiesAssignment_1_1_2_0_2; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_0_2_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_0_2_0; }

		//defaultChildren+=Element
		public Assignment getDefaultChildrenAssignment_1_1_2_0_3() { return cDefaultChildrenAssignment_1_1_2_0_3; }

		//Element
		public RuleCall getDefaultChildrenElementParserRuleCall_1_1_2_0_3_0() { return cDefaultChildrenElementParserRuleCall_1_1_2_0_3_0; }

		//(',' (properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element))*
		public Group getGroup_1_1_2_1() { return cGroup_1_1_2_1; }

		//','
		public Keyword getCommaKeyword_1_1_2_1_0() { return cCommaKeyword_1_1_2_1_0; }

		//properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
		//defaultChildren+=Element
		public Alternatives getAlternatives_1_1_2_1_1() { return cAlternatives_1_1_2_1_1; }

		//properties+=Property
		public Assignment getPropertiesAssignment_1_1_2_1_1_0() { return cPropertiesAssignment_1_1_2_1_1_0; }

		//Property
		public RuleCall getPropertiesPropertyParserRuleCall_1_1_2_1_1_0_0() { return cPropertiesPropertyParserRuleCall_1_1_2_1_1_0_0; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_1_1_2_1_1_1() { return cStaticPropertiesAssignment_1_1_2_1_1_1; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_1_1_1_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_1_1_2_1_1_1_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_1_1_2_1_1_2() { return cStaticCallPropertiesAssignment_1_1_2_1_1_2; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_1_1_2_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_1_1_2_1_1_2_0; }

		//defaultChildren+=Element
		public Assignment getDefaultChildrenAssignment_1_1_2_1_1_3() { return cDefaultChildrenAssignment_1_1_2_1_1_3; }

		//Element
		public RuleCall getDefaultChildrenElementParserRuleCall_1_1_2_1_1_3_0() { return cDefaultChildrenElementParserRuleCall_1_1_2_1_1_3_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_1_1_3() { return cRightCurlyBracketKeyword_1_1_3; }

		//('id' name=ValidID)? 'createdby' factory=ID ('{' values+=FactoryValueElement (',' values+=FactoryValueElement)* '}')?
		public Group getGroup_1_2() { return cGroup_1_2; }

		//('id' name=ValidID)?
		public Group getGroup_1_2_0() { return cGroup_1_2_0; }

		//'id'
		public Keyword getIdKeyword_1_2_0_0() { return cIdKeyword_1_2_0_0; }

		//name=ValidID
		public Assignment getNameAssignment_1_2_0_1() { return cNameAssignment_1_2_0_1; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_1_2_0_1_0() { return cNameValidIDParserRuleCall_1_2_0_1_0; }

		//'createdby'
		public Keyword getCreatedbyKeyword_1_2_1() { return cCreatedbyKeyword_1_2_1; }

		//factory=ID
		public Assignment getFactoryAssignment_1_2_2() { return cFactoryAssignment_1_2_2; }

		//ID
		public RuleCall getFactoryIDTerminalRuleCall_1_2_2_0() { return cFactoryIDTerminalRuleCall_1_2_2_0; }

		//('{' values+=FactoryValueElement (',' values+=FactoryValueElement)* '}')?
		public Group getGroup_1_2_3() { return cGroup_1_2_3; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_1_2_3_0() { return cLeftCurlyBracketKeyword_1_2_3_0; }

		//values+=FactoryValueElement
		public Assignment getValuesAssignment_1_2_3_1() { return cValuesAssignment_1_2_3_1; }

		//FactoryValueElement
		public RuleCall getValuesFactoryValueElementParserRuleCall_1_2_3_1_0() { return cValuesFactoryValueElementParserRuleCall_1_2_3_1_0; }

		//(',' values+=FactoryValueElement)*
		public Group getGroup_1_2_3_2() { return cGroup_1_2_3_2; }

		//','
		public Keyword getCommaKeyword_1_2_3_2_0() { return cCommaKeyword_1_2_3_2_0; }

		//values+=FactoryValueElement
		public Assignment getValuesAssignment_1_2_3_2_1() { return cValuesAssignment_1_2_3_2_1; }

		//FactoryValueElement
		public RuleCall getValuesFactoryValueElementParserRuleCall_1_2_3_2_1_0() { return cValuesFactoryValueElementParserRuleCall_1_2_3_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_1_2_3_3() { return cRightCurlyBracketKeyword_1_2_3_3; }
	}

	public class DefineElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Define");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cDefineKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Assignment cElementAssignment_1_0 = (Assignment)cAlternatives_1.eContents().get(0);
		private final RuleCall cElementElementParserRuleCall_1_0_0 = (RuleCall)cElementAssignment_1_0.eContents().get(0);
		private final Assignment cIncludeElementAssignment_1_1 = (Assignment)cAlternatives_1.eContents().get(1);
		private final RuleCall cIncludeElementIncludeValuePropertyParserRuleCall_1_1_0 = (RuleCall)cIncludeElementAssignment_1_1.eContents().get(0);
		
		//Define:
		//	'define' (element=Element | includeElement=IncludeValueProperty);
		@Override public ParserRule getRule() { return rule; }

		//'define' (element=Element | includeElement=IncludeValueProperty)
		public Group getGroup() { return cGroup; }

		//'define'
		public Keyword getDefineKeyword_0() { return cDefineKeyword_0; }

		//element=Element | includeElement=IncludeValueProperty
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//element=Element
		public Assignment getElementAssignment_1_0() { return cElementAssignment_1_0; }

		//Element
		public RuleCall getElementElementParserRuleCall_1_0_0() { return cElementElementParserRuleCall_1_0_0; }

		//includeElement=IncludeValueProperty
		public Assignment getIncludeElementAssignment_1_1() { return cIncludeElementAssignment_1_1; }

		//IncludeValueProperty
		public RuleCall getIncludeElementIncludeValuePropertyParserRuleCall_1_1_0() { return cIncludeElementIncludeValuePropertyParserRuleCall_1_1_0; }
	}

	public class ScriptElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Script");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cLanguageAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cLanguageIDTerminalRuleCall_1_0 = (RuleCall)cLanguageAssignment_1.eContents().get(0);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Assignment cSourceAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
		private final RuleCall cSourceSTRINGTerminalRuleCall_2_0_0 = (RuleCall)cSourceAssignment_2_0.eContents().get(0);
		private final Assignment cSourcecodeAssignment_2_1 = (Assignment)cAlternatives_2.eContents().get(1);
		private final RuleCall cSourcecodeSCRIPTLITERALTerminalRuleCall_2_1_0 = (RuleCall)cSourcecodeAssignment_2_1.eContents().get(0);
		
		//Script:
		//	'script' language=ID (source=STRING | sourcecode=SCRIPTLITERAL);
		@Override public ParserRule getRule() { return rule; }

		//'script' language=ID (source=STRING | sourcecode=SCRIPTLITERAL)
		public Group getGroup() { return cGroup; }

		//'script'
		public Keyword getScriptKeyword_0() { return cScriptKeyword_0; }

		//language=ID
		public Assignment getLanguageAssignment_1() { return cLanguageAssignment_1; }

		//ID
		public RuleCall getLanguageIDTerminalRuleCall_1_0() { return cLanguageIDTerminalRuleCall_1_0; }

		//source=STRING | sourcecode=SCRIPTLITERAL
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//source=STRING
		public Assignment getSourceAssignment_2_0() { return cSourceAssignment_2_0; }

		//STRING
		public RuleCall getSourceSTRINGTerminalRuleCall_2_0_0() { return cSourceSTRINGTerminalRuleCall_2_0_0; }

		//sourcecode=SCRIPTLITERAL
		public Assignment getSourcecodeAssignment_2_1() { return cSourcecodeAssignment_2_1; }

		//SCRIPTLITERAL
		public RuleCall getSourcecodeSCRIPTLITERALTerminalRuleCall_2_1_0() { return cSourcecodeSCRIPTLITERALTerminalRuleCall_2_1_0; }
	}

	public class StaticCallValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.StaticCallValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cModifierAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Alternatives cModifierAlternatives_0_0 = (Alternatives)cModifierAssignment_0.eContents().get(0);
		private final Keyword cModifierPreviewKeyword_0_0_0 = (Keyword)cModifierAlternatives_0_0.eContents().get(0);
		private final Keyword cModifierRuntimeOnlyKeyword_0_0_1 = (Keyword)cModifierAlternatives_0_0.eContents().get(1);
		private final Keyword cCallKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cTypeJvmTypeReferenceParserRuleCall_2_0 = (RuleCall)cTypeAssignment_2.eContents().get(0);
		private final Keyword cNumberSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cNameAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cNameIDTerminalRuleCall_4_0 = (RuleCall)cNameAssignment_4.eContents().get(0);
		private final Keyword cColonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cValueAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cValueValuePropertyParserRuleCall_6_0 = (RuleCall)cValueAssignment_6.eContents().get(0);
		
		//StaticCallValueProperty:
		//	modifier=('preview' | 'runtime-only')? 'call' type=JvmTypeReference '#' name=ID ':' value=ValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//modifier=('preview' | 'runtime-only')? 'call' type=JvmTypeReference '#' name=ID ':' value=ValueProperty
		public Group getGroup() { return cGroup; }

		//modifier=('preview' | 'runtime-only')?
		public Assignment getModifierAssignment_0() { return cModifierAssignment_0; }

		//('preview' | 'runtime-only')
		public Alternatives getModifierAlternatives_0_0() { return cModifierAlternatives_0_0; }

		//'preview'
		public Keyword getModifierPreviewKeyword_0_0_0() { return cModifierPreviewKeyword_0_0_0; }

		//'runtime-only'
		public Keyword getModifierRuntimeOnlyKeyword_0_0_1() { return cModifierRuntimeOnlyKeyword_0_0_1; }

		//'call'
		public Keyword getCallKeyword_1() { return cCallKeyword_1; }

		//type=JvmTypeReference
		public Assignment getTypeAssignment_2() { return cTypeAssignment_2; }

		//JvmTypeReference
		public RuleCall getTypeJvmTypeReferenceParserRuleCall_2_0() { return cTypeJvmTypeReferenceParserRuleCall_2_0; }

		//'#'
		public Keyword getNumberSignKeyword_3() { return cNumberSignKeyword_3; }

		//name=ID
		public Assignment getNameAssignment_4() { return cNameAssignment_4; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_4_0() { return cNameIDTerminalRuleCall_4_0; }

		//':'
		public Keyword getColonKeyword_5() { return cColonKeyword_5; }

		//value=ValueProperty
		public Assignment getValueAssignment_6() { return cValueAssignment_6; }

		//ValueProperty
		public RuleCall getValueValuePropertyParserRuleCall_6_0() { return cValueValuePropertyParserRuleCall_6_0; }
	}

	public class StaticValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.StaticValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cModifierAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Alternatives cModifierAlternatives_0_0 = (Alternatives)cModifierAssignment_0.eContents().get(0);
		private final Keyword cModifierPreviewKeyword_0_0_0 = (Keyword)cModifierAlternatives_0_0.eContents().get(0);
		private final Keyword cModifierRuntimeOnlyKeyword_0_0_1 = (Keyword)cModifierAlternatives_0_0.eContents().get(1);
		private final Keyword cStaticKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cValueValuePropertyParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
		
		//StaticValueProperty:
		//	modifier=('preview' | 'runtime-only')? 'static' name=ID ':' value=ValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//modifier=('preview' | 'runtime-only')? 'static' name=ID ':' value=ValueProperty
		public Group getGroup() { return cGroup; }

		//modifier=('preview' | 'runtime-only')?
		public Assignment getModifierAssignment_0() { return cModifierAssignment_0; }

		//('preview' | 'runtime-only')
		public Alternatives getModifierAlternatives_0_0() { return cModifierAlternatives_0_0; }

		//'preview'
		public Keyword getModifierPreviewKeyword_0_0_0() { return cModifierPreviewKeyword_0_0_0; }

		//'runtime-only'
		public Keyword getModifierRuntimeOnlyKeyword_0_0_1() { return cModifierRuntimeOnlyKeyword_0_0_1; }

		//'static'
		public Keyword getStaticKeyword_1() { return cStaticKeyword_1; }

		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//':'
		public Keyword getColonKeyword_3() { return cColonKeyword_3; }

		//value=ValueProperty
		public Assignment getValueAssignment_4() { return cValueAssignment_4; }

		//ValueProperty
		public RuleCall getValueValuePropertyParserRuleCall_4_0() { return cValueValuePropertyParserRuleCall_4_0; }
	}

	public class PropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.Property");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cModifierAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final Alternatives cModifierAlternatives_0_0 = (Alternatives)cModifierAssignment_0.eContents().get(0);
		private final Keyword cModifierPreviewKeyword_0_0_0 = (Keyword)cModifierAlternatives_0_0.eContents().get(0);
		private final Keyword cModifierRuntimeOnlyKeyword_0_0_1 = (Keyword)cModifierAlternatives_0_0.eContents().get(1);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cValueAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cValueValuePropertyParserRuleCall_3_0 = (RuleCall)cValueAssignment_3.eContents().get(0);
		
		//Property:
		//	modifier=('preview' | 'runtime-only')? name=ID ':' value=ValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//modifier=('preview' | 'runtime-only')? name=ID ':' value=ValueProperty
		public Group getGroup() { return cGroup; }

		//modifier=('preview' | 'runtime-only')?
		public Assignment getModifierAssignment_0() { return cModifierAssignment_0; }

		//('preview' | 'runtime-only')
		public Alternatives getModifierAlternatives_0_0() { return cModifierAlternatives_0_0; }

		//'preview'
		public Keyword getModifierPreviewKeyword_0_0_0() { return cModifierPreviewKeyword_0_0_0; }

		//'runtime-only'
		public Keyword getModifierRuntimeOnlyKeyword_0_0_1() { return cModifierRuntimeOnlyKeyword_0_0_1; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//':'
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }

		//value=ValueProperty
		public Assignment getValueAssignment_3() { return cValueAssignment_3; }

		//ValueProperty
		public RuleCall getValueValuePropertyParserRuleCall_3_0() { return cValueValuePropertyParserRuleCall_3_0; }
	}

	public class ValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ValueProperty");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSingleValuePropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cMultiValuePropertyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//ValueProperty:
		//	SingleValueProperty | MultiValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//SingleValueProperty | MultiValueProperty
		public Alternatives getAlternatives() { return cAlternatives; }

		//SingleValueProperty
		public RuleCall getSingleValuePropertyParserRuleCall_0() { return cSingleValuePropertyParserRuleCall_0; }

		//MultiValueProperty
		public RuleCall getMultiValuePropertyParserRuleCall_1() { return cMultiValuePropertyParserRuleCall_1; }
	}

	public class SingleValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.SingleValueProperty");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSimpleValuePropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cElementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cReferenceValuePropertyParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cIncludeValuePropertyParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cCopyValuePropertyParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cControllerHandledValuePropertyParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cScriptValueExpressionParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cScriptHandlerHandledValuePropertyParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cScriptValueReferenceParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cLocationValuePropertyParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		private final RuleCall cResourceValuePropertyParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
		private final RuleCall cBindValuePropertyParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11);
		private final RuleCall cConstValuePropertyParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12);
		
		//SingleValueProperty:
		//	SimpleValueProperty | Element | ReferenceValueProperty | IncludeValueProperty | CopyValueProperty |
		//	ControllerHandledValueProperty | ScriptValueExpression | ScriptHandlerHandledValueProperty | ScriptValueReference |
		//	LocationValueProperty | ResourceValueProperty | BindValueProperty | ConstValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//SimpleValueProperty | Element | ReferenceValueProperty | IncludeValueProperty | CopyValueProperty |
		//ControllerHandledValueProperty | ScriptValueExpression | ScriptHandlerHandledValueProperty | ScriptValueReference |
		//LocationValueProperty | ResourceValueProperty | BindValueProperty | ConstValueProperty
		public Alternatives getAlternatives() { return cAlternatives; }

		//SimpleValueProperty
		public RuleCall getSimpleValuePropertyParserRuleCall_0() { return cSimpleValuePropertyParserRuleCall_0; }

		//Element
		public RuleCall getElementParserRuleCall_1() { return cElementParserRuleCall_1; }

		//ReferenceValueProperty
		public RuleCall getReferenceValuePropertyParserRuleCall_2() { return cReferenceValuePropertyParserRuleCall_2; }

		//IncludeValueProperty
		public RuleCall getIncludeValuePropertyParserRuleCall_3() { return cIncludeValuePropertyParserRuleCall_3; }

		//CopyValueProperty
		public RuleCall getCopyValuePropertyParserRuleCall_4() { return cCopyValuePropertyParserRuleCall_4; }

		//ControllerHandledValueProperty
		public RuleCall getControllerHandledValuePropertyParserRuleCall_5() { return cControllerHandledValuePropertyParserRuleCall_5; }

		//ScriptValueExpression
		public RuleCall getScriptValueExpressionParserRuleCall_6() { return cScriptValueExpressionParserRuleCall_6; }

		//ScriptHandlerHandledValueProperty
		public RuleCall getScriptHandlerHandledValuePropertyParserRuleCall_7() { return cScriptHandlerHandledValuePropertyParserRuleCall_7; }

		//ScriptValueReference
		public RuleCall getScriptValueReferenceParserRuleCall_8() { return cScriptValueReferenceParserRuleCall_8; }

		//LocationValueProperty
		public RuleCall getLocationValuePropertyParserRuleCall_9() { return cLocationValuePropertyParserRuleCall_9; }

		//ResourceValueProperty
		public RuleCall getResourceValuePropertyParserRuleCall_10() { return cResourceValuePropertyParserRuleCall_10; }

		//BindValueProperty
		public RuleCall getBindValuePropertyParserRuleCall_11() { return cBindValuePropertyParserRuleCall_11; }

		//ConstValueProperty
		public RuleCall getConstValuePropertyParserRuleCall_12() { return cConstValuePropertyParserRuleCall_12; }
	}

	public class MultiValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.MultiValueProperty");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cListValuePropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cMapValuePropertyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//MultiValueProperty:
		//	ListValueProperty | MapValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//ListValueProperty | MapValueProperty
		public Alternatives getAlternatives() { return cAlternatives; }

		//ListValueProperty
		public RuleCall getListValuePropertyParserRuleCall_0() { return cListValuePropertyParserRuleCall_0; }

		//MapValueProperty
		public RuleCall getMapValuePropertyParserRuleCall_1() { return cMapValuePropertyParserRuleCall_1; }
	}

	public class FactoryValueElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.FactoryValueElement");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSimpleValuePropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cElementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//FactoryValueElement:
		//	SimpleValueProperty | Element;
		@Override public ParserRule getRule() { return rule; }

		//SimpleValueProperty | Element
		public Alternatives getAlternatives() { return cAlternatives; }

		//SimpleValueProperty
		public RuleCall getSimpleValuePropertyParserRuleCall_0() { return cSimpleValuePropertyParserRuleCall_0; }

		//Element
		public RuleCall getElementParserRuleCall_1() { return cElementParserRuleCall_1; }
	}

	public class ListValueElementElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ListValueElement");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cElementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cReferenceValuePropertyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cIncludeValuePropertyParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cSimpleValuePropertyParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		
		//ListValueElement:
		//	Element | ReferenceValueProperty | IncludeValueProperty | SimpleValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//Element | ReferenceValueProperty | IncludeValueProperty | SimpleValueProperty
		public Alternatives getAlternatives() { return cAlternatives; }

		//Element
		public RuleCall getElementParserRuleCall_0() { return cElementParserRuleCall_0; }

		//ReferenceValueProperty
		public RuleCall getReferenceValuePropertyParserRuleCall_1() { return cReferenceValuePropertyParserRuleCall_1; }

		//IncludeValueProperty
		public RuleCall getIncludeValuePropertyParserRuleCall_2() { return cIncludeValuePropertyParserRuleCall_2; }

		//SimpleValueProperty
		public RuleCall getSimpleValuePropertyParserRuleCall_3() { return cSimpleValuePropertyParserRuleCall_3; }
	}

	public class ListValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ListValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLeftSquareBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cValueListValueElementParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cValueListValueElementParserRuleCall_2_1_0 = (RuleCall)cValueAssignment_2_1.eContents().get(0);
		private final Keyword cRightSquareBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//ListValueProperty:
		//	'[' value+=ListValueElement (',' value+=ListValueElement)* ']';
		@Override public ParserRule getRule() { return rule; }

		//'[' value+=ListValueElement (',' value+=ListValueElement)* ']'
		public Group getGroup() { return cGroup; }

		//'['
		public Keyword getLeftSquareBracketKeyword_0() { return cLeftSquareBracketKeyword_0; }

		//value+=ListValueElement
		public Assignment getValueAssignment_1() { return cValueAssignment_1; }

		//ListValueElement
		public RuleCall getValueListValueElementParserRuleCall_1_0() { return cValueListValueElementParserRuleCall_1_0; }

		//(',' value+=ListValueElement)*
		public Group getGroup_2() { return cGroup_2; }

		//','
		public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }

		//value+=ListValueElement
		public Assignment getValueAssignment_2_1() { return cValueAssignment_2_1; }

		//ListValueElement
		public RuleCall getValueListValueElementParserRuleCall_2_1_0() { return cValueListValueElementParserRuleCall_2_1_0; }

		//']'
		public Keyword getRightSquareBracketKeyword_3() { return cRightSquareBracketKeyword_3; }
	}

	public class MapValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.MapValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cPropertiesAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cPropertiesPropertyParserRuleCall_1_0 = (RuleCall)cPropertiesAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cCommaKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cPropertiesAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cPropertiesPropertyParserRuleCall_2_1_0 = (RuleCall)cPropertiesAssignment_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//MapValueProperty:
		//	'{' properties+=Property (',' properties+=Property)* '}';
		@Override public ParserRule getRule() { return rule; }

		//'{' properties+=Property (',' properties+=Property)* '}'
		public Group getGroup() { return cGroup; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_0() { return cLeftCurlyBracketKeyword_0; }

		//properties+=Property
		public Assignment getPropertiesAssignment_1() { return cPropertiesAssignment_1; }

		//Property
		public RuleCall getPropertiesPropertyParserRuleCall_1_0() { return cPropertiesPropertyParserRuleCall_1_0; }

		//(',' properties+=Property)*
		public Group getGroup_2() { return cGroup_2; }

		//','
		public Keyword getCommaKeyword_2_0() { return cCommaKeyword_2_0; }

		//properties+=Property
		public Assignment getPropertiesAssignment_2_1() { return cPropertiesAssignment_2_1; }

		//Property
		public RuleCall getPropertiesPropertyParserRuleCall_2_1_0() { return cPropertiesPropertyParserRuleCall_2_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class SimpleValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.SimpleValueProperty");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Assignment cStringValueAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
		private final RuleCall cStringValueSTRINGTerminalRuleCall_0_0 = (RuleCall)cStringValueAssignment_0.eContents().get(0);
		private final Assignment cBooleanValueAssignment_1 = (Assignment)cAlternatives.eContents().get(1);
		private final Alternatives cBooleanValueAlternatives_1_0 = (Alternatives)cBooleanValueAssignment_1.eContents().get(0);
		private final Keyword cBooleanValueTrueKeyword_1_0_0 = (Keyword)cBooleanValueAlternatives_1_0.eContents().get(0);
		private final Keyword cBooleanValueFalseKeyword_1_0_1 = (Keyword)cBooleanValueAlternatives_1_0.eContents().get(1);
		private final Group cGroup_2 = (Group)cAlternatives.eContents().get(2);
		private final Assignment cNegativeAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
		private final Keyword cNegativeHyphenMinusKeyword_2_0_0 = (Keyword)cNegativeAssignment_2_0.eContents().get(0);
		private final Assignment cNumberAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cNumberNumberParserRuleCall_2_1_0 = (RuleCall)cNumberAssignment_2_1.eContents().get(0);
		
		//SimpleValueProperty:
		//	stringValue=STRING | booleanValue=("true" | "false") | negative?='-'? number=Number;
		@Override public ParserRule getRule() { return rule; }

		//stringValue=STRING | booleanValue=("true" | "false") | negative?='-'? number=Number
		public Alternatives getAlternatives() { return cAlternatives; }

		//stringValue=STRING
		public Assignment getStringValueAssignment_0() { return cStringValueAssignment_0; }

		//STRING
		public RuleCall getStringValueSTRINGTerminalRuleCall_0_0() { return cStringValueSTRINGTerminalRuleCall_0_0; }

		//booleanValue=("true" | "false")
		public Assignment getBooleanValueAssignment_1() { return cBooleanValueAssignment_1; }

		//("true" | "false")
		public Alternatives getBooleanValueAlternatives_1_0() { return cBooleanValueAlternatives_1_0; }

		//"true"
		public Keyword getBooleanValueTrueKeyword_1_0_0() { return cBooleanValueTrueKeyword_1_0_0; }

		//"false"
		public Keyword getBooleanValueFalseKeyword_1_0_1() { return cBooleanValueFalseKeyword_1_0_1; }

		//negative?='-'? number=Number
		public Group getGroup_2() { return cGroup_2; }

		//negative?='-'?
		public Assignment getNegativeAssignment_2_0() { return cNegativeAssignment_2_0; }

		//'-'
		public Keyword getNegativeHyphenMinusKeyword_2_0_0() { return cNegativeHyphenMinusKeyword_2_0_0; }

		//number=Number
		public Assignment getNumberAssignment_2_1() { return cNumberAssignment_2_1; }

		//Number
		public RuleCall getNumberNumberParserRuleCall_2_1_0() { return cNumberNumberParserRuleCall_2_1_0; }
	}

	public class ConstValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ConstValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cConstKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cTypeJvmTypeReferenceParserRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
		private final Keyword cNumberSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cFieldAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cFieldIDTerminalRuleCall_3_0 = (RuleCall)cFieldAssignment_3.eContents().get(0);
		
		//ConstValueProperty:
		//	'const' type=JvmTypeReference '#' field=ID;
		@Override public ParserRule getRule() { return rule; }

		//'const' type=JvmTypeReference '#' field=ID
		public Group getGroup() { return cGroup; }

		//'const'
		public Keyword getConstKeyword_0() { return cConstKeyword_0; }

		//type=JvmTypeReference
		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }

		//JvmTypeReference
		public RuleCall getTypeJvmTypeReferenceParserRuleCall_1_0() { return cTypeJvmTypeReferenceParserRuleCall_1_0; }

		//'#'
		public Keyword getNumberSignKeyword_2() { return cNumberSignKeyword_2; }

		//field=ID
		public Assignment getFieldAssignment_3() { return cFieldAssignment_3; }

		//ID
		public RuleCall getFieldIDTerminalRuleCall_3_0() { return cFieldIDTerminalRuleCall_3_0; }
	}

	public class ReferenceTypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ReferenceType");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cElementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cIncludeValuePropertyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//ReferenceType:
		//	Element | IncludeValueProperty;
		@Override public ParserRule getRule() { return rule; }

		//Element | IncludeValueProperty
		public Alternatives getAlternatives() { return cAlternatives; }

		//Element
		public RuleCall getElementParserRuleCall_0() { return cElementParserRuleCall_0; }

		//IncludeValueProperty
		public RuleCall getIncludeValuePropertyParserRuleCall_1() { return cIncludeValuePropertyParserRuleCall_1; }
	}

	public class ReferenceValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ReferenceValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIdrefKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cReferenceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cReferenceReferenceTypeCrossReference_1_0 = (CrossReference)cReferenceAssignment_1.eContents().get(0);
		private final RuleCall cReferenceReferenceTypeValidIDParserRuleCall_1_0_1 = (RuleCall)cReferenceReferenceTypeCrossReference_1_0.eContents().get(1);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cLeftCurlyBracketKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Alternatives cAlternatives_2_1 = (Alternatives)cGroup_2.eContents().get(1);
		private final Assignment cStaticPropertiesAssignment_2_1_0 = (Assignment)cAlternatives_2_1.eContents().get(0);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_2_1_0_0 = (RuleCall)cStaticPropertiesAssignment_2_1_0.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_2_1_1 = (Assignment)cAlternatives_2_1.eContents().get(1);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_1_1_0 = (RuleCall)cStaticCallPropertiesAssignment_2_1_1.eContents().get(0);
		private final Group cGroup_2_2 = (Group)cGroup_2.eContents().get(2);
		private final Keyword cCommaKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0);
		private final Alternatives cAlternatives_2_2_1 = (Alternatives)cGroup_2_2.eContents().get(1);
		private final Assignment cStaticPropertiesAssignment_2_2_1_0 = (Assignment)cAlternatives_2_2_1.eContents().get(0);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_2_2_1_0_0 = (RuleCall)cStaticPropertiesAssignment_2_2_1_0.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_2_2_1_1 = (Assignment)cAlternatives_2_2_1.eContents().get(1);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_2_1_1_0 = (RuleCall)cStaticCallPropertiesAssignment_2_2_1_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3);
		
		//ReferenceValueProperty:
		//	'idref' reference=[ReferenceType|ValidID] ('{' (staticProperties+=StaticValueProperty |
		//	staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
		//	staticCallProperties+=StaticCallValueProperty))*
		//	'}')?;
		@Override public ParserRule getRule() { return rule; }

		//'idref' reference=[ReferenceType|ValidID] ('{' (staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty))* '}')?
		public Group getGroup() { return cGroup; }

		//'idref'
		public Keyword getIdrefKeyword_0() { return cIdrefKeyword_0; }

		//reference=[ReferenceType|ValidID]
		public Assignment getReferenceAssignment_1() { return cReferenceAssignment_1; }

		//[ReferenceType|ValidID]
		public CrossReference getReferenceReferenceTypeCrossReference_1_0() { return cReferenceReferenceTypeCrossReference_1_0; }

		//ValidID
		public RuleCall getReferenceReferenceTypeValidIDParserRuleCall_1_0_1() { return cReferenceReferenceTypeValidIDParserRuleCall_1_0_1; }

		//('{' (staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty) (','
		//(staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty))* '}')?
		public Group getGroup_2() { return cGroup_2; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_2_0() { return cLeftCurlyBracketKeyword_2_0; }

		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty
		public Alternatives getAlternatives_2_1() { return cAlternatives_2_1; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_2_1_0() { return cStaticPropertiesAssignment_2_1_0; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_2_1_0_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_2_1_0_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_2_1_1() { return cStaticCallPropertiesAssignment_2_1_1; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_1_1_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_1_1_0; }

		//(',' (staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty))*
		public Group getGroup_2_2() { return cGroup_2_2; }

		//','
		public Keyword getCommaKeyword_2_2_0() { return cCommaKeyword_2_2_0; }

		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty
		public Alternatives getAlternatives_2_2_1() { return cAlternatives_2_2_1; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_2_2_1_0() { return cStaticPropertiesAssignment_2_2_1_0; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_2_2_1_0_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_2_2_1_0_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_2_2_1_1() { return cStaticCallPropertiesAssignment_2_2_1_1; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_2_1_1_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_2_2_1_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_2_3() { return cRightCurlyBracketKeyword_2_3; }
	}

	public class IncludeValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.IncludeValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cIncludeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cSourceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cSourceComponentDefinitionCrossReference_1_0 = (CrossReference)cSourceAssignment_1.eContents().get(0);
		private final RuleCall cSourceComponentDefinitionQualifiedNameParserRuleCall_1_0_1 = (RuleCall)cSourceComponentDefinitionCrossReference_1_0.eContents().get(1);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cNameAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final RuleCall cNameValidIDParserRuleCall_2_1_0 = (RuleCall)cNameAssignment_2_1.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Alternatives cAlternatives_3_1 = (Alternatives)cGroup_3.eContents().get(1);
		private final Assignment cStaticPropertiesAssignment_3_1_0 = (Assignment)cAlternatives_3_1.eContents().get(0);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_3_1_0_0 = (RuleCall)cStaticPropertiesAssignment_3_1_0.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_3_1_1 = (Assignment)cAlternatives_3_1.eContents().get(1);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_1_1_0 = (RuleCall)cStaticCallPropertiesAssignment_3_1_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Keyword cCommaKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
		private final Alternatives cAlternatives_3_2_1 = (Alternatives)cGroup_3_2.eContents().get(1);
		private final Assignment cStaticPropertiesAssignment_3_2_1_0 = (Assignment)cAlternatives_3_2_1.eContents().get(0);
		private final RuleCall cStaticPropertiesStaticValuePropertyParserRuleCall_3_2_1_0_0 = (RuleCall)cStaticPropertiesAssignment_3_2_1_0.eContents().get(0);
		private final Assignment cStaticCallPropertiesAssignment_3_2_1_1 = (Assignment)cAlternatives_3_2_1.eContents().get(1);
		private final RuleCall cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_2_1_1_0 = (RuleCall)cStaticCallPropertiesAssignment_3_2_1_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
		
		//IncludeValueProperty:
		//	'include' source=[ComponentDefinition|QualifiedName] ('as' name=ValidID)? ('{' (staticProperties+=StaticValueProperty
		//	| staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
		//	staticCallProperties+=StaticCallValueProperty))*
		//	'}')?;
		@Override public ParserRule getRule() { return rule; }

		//'include' source=[ComponentDefinition|QualifiedName] ('as' name=ValidID)? ('{' (staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
		//staticCallProperties+=StaticCallValueProperty))* '}')?
		public Group getGroup() { return cGroup; }

		//'include'
		public Keyword getIncludeKeyword_0() { return cIncludeKeyword_0; }

		//source=[ComponentDefinition|QualifiedName]
		public Assignment getSourceAssignment_1() { return cSourceAssignment_1; }

		//[ComponentDefinition|QualifiedName]
		public CrossReference getSourceComponentDefinitionCrossReference_1_0() { return cSourceComponentDefinitionCrossReference_1_0; }

		//QualifiedName
		public RuleCall getSourceComponentDefinitionQualifiedNameParserRuleCall_1_0_1() { return cSourceComponentDefinitionQualifiedNameParserRuleCall_1_0_1; }

		//('as' name=ValidID)?
		public Group getGroup_2() { return cGroup_2; }

		//'as'
		public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }

		//name=ValidID
		public Assignment getNameAssignment_2_1() { return cNameAssignment_2_1; }

		//ValidID
		public RuleCall getNameValidIDParserRuleCall_2_1_0() { return cNameValidIDParserRuleCall_2_1_0; }

		//('{' (staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty) (','
		//(staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty))* '}')?
		public Group getGroup_3() { return cGroup_3; }

		//'{'
		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }

		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty
		public Alternatives getAlternatives_3_1() { return cAlternatives_3_1; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_3_1_0() { return cStaticPropertiesAssignment_3_1_0; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_3_1_0_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_3_1_0_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_3_1_1() { return cStaticCallPropertiesAssignment_3_1_1; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_1_1_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_1_1_0; }

		//(',' (staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty))*
		public Group getGroup_3_2() { return cGroup_3_2; }

		//','
		public Keyword getCommaKeyword_3_2_0() { return cCommaKeyword_3_2_0; }

		//staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty
		public Alternatives getAlternatives_3_2_1() { return cAlternatives_3_2_1; }

		//staticProperties+=StaticValueProperty
		public Assignment getStaticPropertiesAssignment_3_2_1_0() { return cStaticPropertiesAssignment_3_2_1_0; }

		//StaticValueProperty
		public RuleCall getStaticPropertiesStaticValuePropertyParserRuleCall_3_2_1_0_0() { return cStaticPropertiesStaticValuePropertyParserRuleCall_3_2_1_0_0; }

		//staticCallProperties+=StaticCallValueProperty
		public Assignment getStaticCallPropertiesAssignment_3_2_1_1() { return cStaticCallPropertiesAssignment_3_2_1_1; }

		//StaticCallValueProperty
		public RuleCall getStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_2_1_1_0() { return cStaticCallPropertiesStaticCallValuePropertyParserRuleCall_3_2_1_1_0; }

		//'}'
		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
	}

	public class CopyValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.CopyValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCopyKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cReferenceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cReferenceElementCrossReference_1_0 = (CrossReference)cReferenceAssignment_1.eContents().get(0);
		private final RuleCall cReferenceElementValidIDParserRuleCall_1_0_1 = (RuleCall)cReferenceElementCrossReference_1_0.eContents().get(1);
		
		//CopyValueProperty:
		//	'copy' reference=[Element|ValidID];
		@Override public ParserRule getRule() { return rule; }

		//'copy' reference=[Element|ValidID]
		public Group getGroup() { return cGroup; }

		//'copy'
		public Keyword getCopyKeyword_0() { return cCopyKeyword_0; }

		//reference=[Element|ValidID]
		public Assignment getReferenceAssignment_1() { return cReferenceAssignment_1; }

		//[Element|ValidID]
		public CrossReference getReferenceElementCrossReference_1_0() { return cReferenceElementCrossReference_1_0; }

		//ValidID
		public RuleCall getReferenceElementValidIDParserRuleCall_1_0_1() { return cReferenceElementValidIDParserRuleCall_1_0_1; }
	}

	public class ControllerHandledValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ControllerHandledValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cControllermethodKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cMethodnameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cMethodnameIDTerminalRuleCall_1_0 = (RuleCall)cMethodnameAssignment_1.eContents().get(0);
		
		//ControllerHandledValueProperty:
		//	'controllermethod' methodname=ID;
		@Override public ParserRule getRule() { return rule; }

		//'controllermethod' methodname=ID
		public Group getGroup() { return cGroup; }

		//'controllermethod'
		public Keyword getControllermethodKeyword_0() { return cControllermethodKeyword_0; }

		//methodname=ID
		public Assignment getMethodnameAssignment_1() { return cMethodnameAssignment_1; }

		//ID
		public RuleCall getMethodnameIDTerminalRuleCall_1_0() { return cMethodnameIDTerminalRuleCall_1_0; }
	}

	public class ScriptHandlerHandledValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ScriptHandlerHandledValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptmethodKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cFunctionnameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cFunctionnameSTRINGTerminalRuleCall_1_0 = (RuleCall)cFunctionnameAssignment_1.eContents().get(0);
		
		//ScriptHandlerHandledValueProperty:
		//	'scriptmethod' functionname=STRING;
		@Override public ParserRule getRule() { return rule; }

		//'scriptmethod' functionname=STRING
		public Group getGroup() { return cGroup; }

		//'scriptmethod'
		public Keyword getScriptmethodKeyword_0() { return cScriptmethodKeyword_0; }

		//functionname=STRING
		public Assignment getFunctionnameAssignment_1() { return cFunctionnameAssignment_1; }

		//STRING
		public RuleCall getFunctionnameSTRINGTerminalRuleCall_1_0() { return cFunctionnameSTRINGTerminalRuleCall_1_0; }
	}

	public class ScriptValueExpressionElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ScriptValueExpression");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptexpressionKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cSourcecodeAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cSourcecodeSCRIPTLITERALTerminalRuleCall_1_0 = (RuleCall)cSourcecodeAssignment_1.eContents().get(0);
		
		//ScriptValueExpression:
		//	'scriptexpression' sourcecode=SCRIPTLITERAL;
		@Override public ParserRule getRule() { return rule; }

		//'scriptexpression' sourcecode=SCRIPTLITERAL
		public Group getGroup() { return cGroup; }

		//'scriptexpression'
		public Keyword getScriptexpressionKeyword_0() { return cScriptexpressionKeyword_0; }

		//sourcecode=SCRIPTLITERAL
		public Assignment getSourcecodeAssignment_1() { return cSourcecodeAssignment_1; }

		//SCRIPTLITERAL
		public RuleCall getSourcecodeSCRIPTLITERALTerminalRuleCall_1_0() { return cSourcecodeSCRIPTLITERALTerminalRuleCall_1_0; }
	}

	public class ScriptValueReferenceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ScriptValueReference");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cScriptvalueKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cReferenceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cReferenceIDTerminalRuleCall_1_0 = (RuleCall)cReferenceAssignment_1.eContents().get(0);
		
		//ScriptValueReference:
		//	'scriptvalue' reference=ID;
		@Override public ParserRule getRule() { return rule; }

		//'scriptvalue' reference=ID
		public Group getGroup() { return cGroup; }

		//'scriptvalue'
		public Keyword getScriptvalueKeyword_0() { return cScriptvalueKeyword_0; }

		//reference=ID
		public Assignment getReferenceAssignment_1() { return cReferenceAssignment_1; }

		//ID
		public RuleCall getReferenceIDTerminalRuleCall_1_0() { return cReferenceIDTerminalRuleCall_1_0; }
	}

	public class LocationValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.LocationValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLocationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
		
		//LocationValueProperty:
		//	'location' value=STRING;
		@Override public ParserRule getRule() { return rule; }

		//'location' value=STRING
		public Group getGroup() { return cGroup; }

		//'location'
		public Keyword getLocationKeyword_0() { return cLocationKeyword_0; }

		//value=STRING
		public Assignment getValueAssignment_1() { return cValueAssignment_1; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_1_0() { return cValueSTRINGTerminalRuleCall_1_0; }
	}

	public class ResourceValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.ResourceValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cRstringKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cValueAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cValueStringValueParserRuleCall_1_0 = (RuleCall)cValueAssignment_1.eContents().get(0);
		
		//ResourceValueProperty:
		//	'rstring' value=StringValue;
		@Override public ParserRule getRule() { return rule; }

		//'rstring' value=StringValue
		public Group getGroup() { return cGroup; }

		//'rstring'
		public Keyword getRstringKeyword_0() { return cRstringKeyword_0; }

		//value=StringValue
		public Assignment getValueAssignment_1() { return cValueAssignment_1; }

		//StringValue
		public RuleCall getValueStringValueParserRuleCall_1_0() { return cValueStringValueParserRuleCall_1_0; }
	}

	public class BindValuePropertyElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.BindValueProperty");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBindKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cElementReferenceAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cElementReferenceElementCrossReference_1_0 = (CrossReference)cElementReferenceAssignment_1.eContents().get(0);
		private final RuleCall cElementReferenceElementValidIDParserRuleCall_1_0_1 = (RuleCall)cElementReferenceElementCrossReference_1_0.eContents().get(1);
		private final Keyword cNumberSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cAttributeAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cAttributeIDTerminalRuleCall_3_0 = (RuleCall)cAttributeAssignment_3.eContents().get(0);
		
		//BindValueProperty:
		//	'bind' elementReference=[Element|ValidID] '#' attribute=ID;
		@Override public ParserRule getRule() { return rule; }

		//'bind' elementReference=[Element|ValidID] '#' attribute=ID
		public Group getGroup() { return cGroup; }

		//'bind'
		public Keyword getBindKeyword_0() { return cBindKeyword_0; }

		//elementReference=[Element|ValidID]
		public Assignment getElementReferenceAssignment_1() { return cElementReferenceAssignment_1; }

		//[Element|ValidID]
		public CrossReference getElementReferenceElementCrossReference_1_0() { return cElementReferenceElementCrossReference_1_0; }

		//ValidID
		public RuleCall getElementReferenceElementValidIDParserRuleCall_1_0_1() { return cElementReferenceElementValidIDParserRuleCall_1_0_1; }

		//'#'
		public Keyword getNumberSignKeyword_2() { return cNumberSignKeyword_2; }

		//attribute=ID
		public Assignment getAttributeAssignment_3() { return cAttributeAssignment_3; }

		//ID
		public RuleCall getAttributeIDTerminalRuleCall_3_0() { return cAttributeIDTerminalRuleCall_3_0; }
	}

	public class StringValueElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.StringValue");
		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cValueSTRINGTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
		
		//StringValue:
		//	value=STRING;
		@Override public ParserRule getRule() { return rule; }

		//value=STRING
		public Assignment getValueAssignment() { return cValueAssignment; }

		//STRING
		public RuleCall getValueSTRINGTerminalRuleCall_0() { return cValueSTRINGTerminalRuleCall_0; }
	}
	
	
	private final ModelElements pModel;
	private final PackageDeclarationElements pPackageDeclaration;
	private final ImportElements pImport;
	private final ComponentDefinitionElements pComponentDefinition;
	private final ElementElements pElement;
	private final DefineElements pDefine;
	private final ScriptElements pScript;
	private final StaticCallValuePropertyElements pStaticCallValueProperty;
	private final StaticValuePropertyElements pStaticValueProperty;
	private final PropertyElements pProperty;
	private final ValuePropertyElements pValueProperty;
	private final SingleValuePropertyElements pSingleValueProperty;
	private final MultiValuePropertyElements pMultiValueProperty;
	private final FactoryValueElementElements pFactoryValueElement;
	private final ListValueElementElements pListValueElement;
	private final ListValuePropertyElements pListValueProperty;
	private final MapValuePropertyElements pMapValueProperty;
	private final SimpleValuePropertyElements pSimpleValueProperty;
	private final ConstValuePropertyElements pConstValueProperty;
	private final ReferenceTypeElements pReferenceType;
	private final ReferenceValuePropertyElements pReferenceValueProperty;
	private final IncludeValuePropertyElements pIncludeValueProperty;
	private final CopyValuePropertyElements pCopyValueProperty;
	private final ControllerHandledValuePropertyElements pControllerHandledValueProperty;
	private final ScriptHandlerHandledValuePropertyElements pScriptHandlerHandledValueProperty;
	private final ScriptValueExpressionElements pScriptValueExpression;
	private final ScriptValueReferenceElements pScriptValueReference;
	private final LocationValuePropertyElements pLocationValueProperty;
	private final ResourceValuePropertyElements pResourceValueProperty;
	private final BindValuePropertyElements pBindValueProperty;
	private final StringValueElements pStringValue;
	private final TerminalRule tSCRIPTLITERAL;
	
	private final Grammar grammar;

	private final XbaseGrammarAccess gaXbase;

	private final XtypeGrammarAccess gaXtype;

	@Inject
	public FXGraphGrammarAccess(GrammarProvider grammarProvider,
		XbaseGrammarAccess gaXbase,
		XtypeGrammarAccess gaXtype) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaXbase = gaXbase;
		this.gaXtype = gaXtype;
		this.pModel = new ModelElements();
		this.pPackageDeclaration = new PackageDeclarationElements();
		this.pImport = new ImportElements();
		this.pComponentDefinition = new ComponentDefinitionElements();
		this.pElement = new ElementElements();
		this.pDefine = new DefineElements();
		this.pScript = new ScriptElements();
		this.pStaticCallValueProperty = new StaticCallValuePropertyElements();
		this.pStaticValueProperty = new StaticValuePropertyElements();
		this.pProperty = new PropertyElements();
		this.pValueProperty = new ValuePropertyElements();
		this.pSingleValueProperty = new SingleValuePropertyElements();
		this.pMultiValueProperty = new MultiValuePropertyElements();
		this.pFactoryValueElement = new FactoryValueElementElements();
		this.pListValueElement = new ListValueElementElements();
		this.pListValueProperty = new ListValuePropertyElements();
		this.pMapValueProperty = new MapValuePropertyElements();
		this.pSimpleValueProperty = new SimpleValuePropertyElements();
		this.pConstValueProperty = new ConstValuePropertyElements();
		this.pReferenceType = new ReferenceTypeElements();
		this.pReferenceValueProperty = new ReferenceValuePropertyElements();
		this.pIncludeValueProperty = new IncludeValuePropertyElements();
		this.pCopyValueProperty = new CopyValuePropertyElements();
		this.pControllerHandledValueProperty = new ControllerHandledValuePropertyElements();
		this.pScriptHandlerHandledValueProperty = new ScriptHandlerHandledValuePropertyElements();
		this.pScriptValueExpression = new ScriptValueExpressionElements();
		this.pScriptValueReference = new ScriptValueReferenceElements();
		this.pLocationValueProperty = new LocationValuePropertyElements();
		this.pResourceValueProperty = new ResourceValuePropertyElements();
		this.pBindValueProperty = new BindValuePropertyElements();
		this.pStringValue = new StringValueElements();
		this.tSCRIPTLITERAL = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.fx.ide.fxgraph.FXGraph.SCRIPTLITERAL");
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.eclipse.fx.ide.fxgraph.FXGraph".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	

	public XbaseGrammarAccess getXbaseGrammarAccess() {
		return gaXbase;
	}

	public XtypeGrammarAccess getXtypeGrammarAccess() {
		return gaXtype;
	}

	
	//Model:
	//	package=PackageDeclaration?
	//	imports+=Import*
	//	componentDef=ComponentDefinition;
	public ModelElements getModelAccess() {
		return pModel;
	}
	
	public ParserRule getModelRule() {
		return getModelAccess().getRule();
	}

	//PackageDeclaration:
	//	'package' name=QualifiedName;
	public PackageDeclarationElements getPackageDeclarationAccess() {
		return pPackageDeclaration;
	}
	
	public ParserRule getPackageDeclarationRule() {
		return getPackageDeclarationAccess().getRule();
	}

	//Import:
	//	'import' importedNamespace=(QualifiedNameWithWildcard | QualifiedName);
	public ImportElements getImportAccess() {
		return pImport;
	}
	
	public ParserRule getImportRule() {
		return getImportAccess().getRule();
	}

	//ComponentDefinition:
	//	dynamicRoot?='dynamic'? 'component' name=ValidID (('controlledby' controller=JvmTypeReference)? & ('styledwith'
	//	(previewCssFiles+=STRING | '[' previewCssFiles+=STRING (',' previewCssFiles+=STRING)* ']'))? & ('resourcefile'
	//	previewResourceBundle=STRING)? & ('extraClasspath' '[' previewClasspathEntries+=STRING (','
	//	previewClasspathEntries+=STRING)* ']')? & ('sceneSetup' sceneDefinition=[ComponentDefinition|QualifiedName])?)
	//	'{'
	//	scripts+=Script? (defines+=Define (',' defines+=Define)*)?
	//	rootNode=Element
	//	'}';
	public ComponentDefinitionElements getComponentDefinitionAccess() {
		return pComponentDefinition;
	}
	
	public ParserRule getComponentDefinitionRule() {
		return getComponentDefinitionAccess().getRule();
	}

	//Element:
	//	type=JvmTypeReference (('(' value=SimpleValueProperty ')')? ('id' name=ValidID)? | ('id' name=ValidID)? '{'
	//	((properties+=Property | staticProperties+=StaticValueProperty | staticCallProperties+=StaticCallValueProperty |
	//	defaultChildren+=Element) (',' (properties+=Property | staticProperties+=StaticValueProperty |
	//	staticCallProperties+=StaticCallValueProperty | defaultChildren+=Element))*)?
	//	'}' | ('id' name=ValidID)? 'createdby' factory=ID ('{' values+=FactoryValueElement (',' values+=FactoryValueElement)*
	//	'}')?);
	public ElementElements getElementAccess() {
		return pElement;
	}
	
	public ParserRule getElementRule() {
		return getElementAccess().getRule();
	}

	//Define:
	//	'define' (element=Element | includeElement=IncludeValueProperty);
	public DefineElements getDefineAccess() {
		return pDefine;
	}
	
	public ParserRule getDefineRule() {
		return getDefineAccess().getRule();
	}

	//Script:
	//	'script' language=ID (source=STRING | sourcecode=SCRIPTLITERAL);
	public ScriptElements getScriptAccess() {
		return pScript;
	}
	
	public ParserRule getScriptRule() {
		return getScriptAccess().getRule();
	}

	//StaticCallValueProperty:
	//	modifier=('preview' | 'runtime-only')? 'call' type=JvmTypeReference '#' name=ID ':' value=ValueProperty;
	public StaticCallValuePropertyElements getStaticCallValuePropertyAccess() {
		return pStaticCallValueProperty;
	}
	
	public ParserRule getStaticCallValuePropertyRule() {
		return getStaticCallValuePropertyAccess().getRule();
	}

	//StaticValueProperty:
	//	modifier=('preview' | 'runtime-only')? 'static' name=ID ':' value=ValueProperty;
	public StaticValuePropertyElements getStaticValuePropertyAccess() {
		return pStaticValueProperty;
	}
	
	public ParserRule getStaticValuePropertyRule() {
		return getStaticValuePropertyAccess().getRule();
	}

	//Property:
	//	modifier=('preview' | 'runtime-only')? name=ID ':' value=ValueProperty;
	public PropertyElements getPropertyAccess() {
		return pProperty;
	}
	
	public ParserRule getPropertyRule() {
		return getPropertyAccess().getRule();
	}

	//ValueProperty:
	//	SingleValueProperty | MultiValueProperty;
	public ValuePropertyElements getValuePropertyAccess() {
		return pValueProperty;
	}
	
	public ParserRule getValuePropertyRule() {
		return getValuePropertyAccess().getRule();
	}

	//SingleValueProperty:
	//	SimpleValueProperty | Element | ReferenceValueProperty | IncludeValueProperty | CopyValueProperty |
	//	ControllerHandledValueProperty | ScriptValueExpression | ScriptHandlerHandledValueProperty | ScriptValueReference |
	//	LocationValueProperty | ResourceValueProperty | BindValueProperty | ConstValueProperty;
	public SingleValuePropertyElements getSingleValuePropertyAccess() {
		return pSingleValueProperty;
	}
	
	public ParserRule getSingleValuePropertyRule() {
		return getSingleValuePropertyAccess().getRule();
	}

	//MultiValueProperty:
	//	ListValueProperty | MapValueProperty;
	public MultiValuePropertyElements getMultiValuePropertyAccess() {
		return pMultiValueProperty;
	}
	
	public ParserRule getMultiValuePropertyRule() {
		return getMultiValuePropertyAccess().getRule();
	}

	//FactoryValueElement:
	//	SimpleValueProperty | Element;
	public FactoryValueElementElements getFactoryValueElementAccess() {
		return pFactoryValueElement;
	}
	
	public ParserRule getFactoryValueElementRule() {
		return getFactoryValueElementAccess().getRule();
	}

	//ListValueElement:
	//	Element | ReferenceValueProperty | IncludeValueProperty | SimpleValueProperty;
	public ListValueElementElements getListValueElementAccess() {
		return pListValueElement;
	}
	
	public ParserRule getListValueElementRule() {
		return getListValueElementAccess().getRule();
	}

	//ListValueProperty:
	//	'[' value+=ListValueElement (',' value+=ListValueElement)* ']';
	public ListValuePropertyElements getListValuePropertyAccess() {
		return pListValueProperty;
	}
	
	public ParserRule getListValuePropertyRule() {
		return getListValuePropertyAccess().getRule();
	}

	//MapValueProperty:
	//	'{' properties+=Property (',' properties+=Property)* '}';
	public MapValuePropertyElements getMapValuePropertyAccess() {
		return pMapValueProperty;
	}
	
	public ParserRule getMapValuePropertyRule() {
		return getMapValuePropertyAccess().getRule();
	}

	//SimpleValueProperty:
	//	stringValue=STRING | booleanValue=("true" | "false") | negative?='-'? number=Number;
	public SimpleValuePropertyElements getSimpleValuePropertyAccess() {
		return pSimpleValueProperty;
	}
	
	public ParserRule getSimpleValuePropertyRule() {
		return getSimpleValuePropertyAccess().getRule();
	}

	//ConstValueProperty:
	//	'const' type=JvmTypeReference '#' field=ID;
	public ConstValuePropertyElements getConstValuePropertyAccess() {
		return pConstValueProperty;
	}
	
	public ParserRule getConstValuePropertyRule() {
		return getConstValuePropertyAccess().getRule();
	}

	//ReferenceType:
	//	Element | IncludeValueProperty;
	public ReferenceTypeElements getReferenceTypeAccess() {
		return pReferenceType;
	}
	
	public ParserRule getReferenceTypeRule() {
		return getReferenceTypeAccess().getRule();
	}

	//ReferenceValueProperty:
	//	'idref' reference=[ReferenceType|ValidID] ('{' (staticProperties+=StaticValueProperty |
	//	staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
	//	staticCallProperties+=StaticCallValueProperty))*
	//	'}')?;
	public ReferenceValuePropertyElements getReferenceValuePropertyAccess() {
		return pReferenceValueProperty;
	}
	
	public ParserRule getReferenceValuePropertyRule() {
		return getReferenceValuePropertyAccess().getRule();
	}

	//IncludeValueProperty:
	//	'include' source=[ComponentDefinition|QualifiedName] ('as' name=ValidID)? ('{' (staticProperties+=StaticValueProperty
	//	| staticCallProperties+=StaticCallValueProperty) (',' (staticProperties+=StaticValueProperty |
	//	staticCallProperties+=StaticCallValueProperty))*
	//	'}')?;
	public IncludeValuePropertyElements getIncludeValuePropertyAccess() {
		return pIncludeValueProperty;
	}
	
	public ParserRule getIncludeValuePropertyRule() {
		return getIncludeValuePropertyAccess().getRule();
	}

	//CopyValueProperty:
	//	'copy' reference=[Element|ValidID];
	public CopyValuePropertyElements getCopyValuePropertyAccess() {
		return pCopyValueProperty;
	}
	
	public ParserRule getCopyValuePropertyRule() {
		return getCopyValuePropertyAccess().getRule();
	}

	//ControllerHandledValueProperty:
	//	'controllermethod' methodname=ID;
	public ControllerHandledValuePropertyElements getControllerHandledValuePropertyAccess() {
		return pControllerHandledValueProperty;
	}
	
	public ParserRule getControllerHandledValuePropertyRule() {
		return getControllerHandledValuePropertyAccess().getRule();
	}

	//ScriptHandlerHandledValueProperty:
	//	'scriptmethod' functionname=STRING;
	public ScriptHandlerHandledValuePropertyElements getScriptHandlerHandledValuePropertyAccess() {
		return pScriptHandlerHandledValueProperty;
	}
	
	public ParserRule getScriptHandlerHandledValuePropertyRule() {
		return getScriptHandlerHandledValuePropertyAccess().getRule();
	}

	//ScriptValueExpression:
	//	'scriptexpression' sourcecode=SCRIPTLITERAL;
	public ScriptValueExpressionElements getScriptValueExpressionAccess() {
		return pScriptValueExpression;
	}
	
	public ParserRule getScriptValueExpressionRule() {
		return getScriptValueExpressionAccess().getRule();
	}

	//ScriptValueReference:
	//	'scriptvalue' reference=ID;
	public ScriptValueReferenceElements getScriptValueReferenceAccess() {
		return pScriptValueReference;
	}
	
	public ParserRule getScriptValueReferenceRule() {
		return getScriptValueReferenceAccess().getRule();
	}

	//LocationValueProperty:
	//	'location' value=STRING;
	public LocationValuePropertyElements getLocationValuePropertyAccess() {
		return pLocationValueProperty;
	}
	
	public ParserRule getLocationValuePropertyRule() {
		return getLocationValuePropertyAccess().getRule();
	}

	//ResourceValueProperty:
	//	'rstring' value=StringValue;
	public ResourceValuePropertyElements getResourceValuePropertyAccess() {
		return pResourceValueProperty;
	}
	
	public ParserRule getResourceValuePropertyRule() {
		return getResourceValuePropertyAccess().getRule();
	}

	//BindValueProperty:
	//	'bind' elementReference=[Element|ValidID] '#' attribute=ID;
	public BindValuePropertyElements getBindValuePropertyAccess() {
		return pBindValueProperty;
	}
	
	public ParserRule getBindValuePropertyRule() {
		return getBindValuePropertyAccess().getRule();
	}

	//StringValue:
	//	value=STRING;
	public StringValueElements getStringValueAccess() {
		return pStringValue;
	}
	
	public ParserRule getStringValueRule() {
		return getStringValueAccess().getRule();
	}

	//terminal SCRIPTLITERAL:
	//	'#{'->'}#';
	public TerminalRule getSCRIPTLITERALRule() {
		return tSCRIPTLITERAL;
	} 

	//XExpression:
	//	XAssignment;
	public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
		return gaXbase.getXExpressionAccess();
	}
	
	public ParserRule getXExpressionRule() {
		return getXExpressionAccess().getRule();
	}

	//XAssignment XExpression:
	//	{XAssignment} feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign value=XAssignment | XOrExpression
	//	(=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMultiAssign])
	//	rightOperand=XAssignment)?;
	public XbaseGrammarAccess.XAssignmentElements getXAssignmentAccess() {
		return gaXbase.getXAssignmentAccess();
	}
	
	public ParserRule getXAssignmentRule() {
		return getXAssignmentAccess().getRule();
	}

	//OpSingleAssign:
	//	'=';
	public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
		return gaXbase.getOpSingleAssignAccess();
	}
	
	public ParserRule getOpSingleAssignRule() {
		return getOpSingleAssignAccess().getRule();
	}

	//OpMultiAssign:
	//	'+=' | '-=' | '*=' | '/=' | '%=' |
	//	'<' '<' '=' |
	//	'>' '>'? '>=';
	public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
		return gaXbase.getOpMultiAssignAccess();
	}
	
	public ParserRule getOpMultiAssignRule() {
		return getOpMultiAssignAccess().getRule();
	}

	//XOrExpression XExpression:
	//	XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
	//	rightOperand=XAndExpression)*;
	public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
		return gaXbase.getXOrExpressionAccess();
	}
	
	public ParserRule getXOrExpressionRule() {
		return getXOrExpressionAccess().getRule();
	}

	//OpOr:
	//	'||';
	public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
		return gaXbase.getOpOrAccess();
	}
	
	public ParserRule getOpOrRule() {
		return getOpOrAccess().getRule();
	}

	//XAndExpression XExpression:
	//	XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
	//	rightOperand=XEqualityExpression)*;
	public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
		return gaXbase.getXAndExpressionAccess();
	}
	
	public ParserRule getXAndExpressionRule() {
		return getXAndExpressionAccess().getRule();
	}

	//OpAnd:
	//	'&&';
	public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
		return gaXbase.getOpAndAccess();
	}
	
	public ParserRule getOpAndRule() {
		return getOpAndAccess().getRule();
	}

	//XEqualityExpression XExpression:
	//	XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
	//	rightOperand=XRelationalExpression)*;
	public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
		return gaXbase.getXEqualityExpressionAccess();
	}
	
	public ParserRule getXEqualityExpressionRule() {
		return getXEqualityExpressionAccess().getRule();
	}

	//OpEquality:
	//	'==' | '!=' | '===' | '!==';
	public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
		return gaXbase.getOpEqualityAccess();
	}
	
	public ParserRule getOpEqualityRule() {
		return getOpEqualityAccess().getRule();
	}

	//XRelationalExpression XExpression:
	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} 'instanceof') type=JvmTypeReference |
	//	=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
	//	rightOperand=XOtherOperatorExpression)*;
	public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
		return gaXbase.getXRelationalExpressionAccess();
	}
	
	public ParserRule getXRelationalExpressionRule() {
		return getXRelationalExpressionAccess().getRule();
	}

	//OpCompare:
	//	'>=' | '<' '=' | '>' | '<';
	public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
		return gaXbase.getOpCompareAccess();
	}
	
	public ParserRule getOpCompareRule() {
		return getOpCompareAccess().getRule();
	}

	//XOtherOperatorExpression XExpression:
	//	XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
	//	rightOperand=XAdditiveExpression)*;
	public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
		return gaXbase.getXOtherOperatorExpressionAccess();
	}
	
	public ParserRule getXOtherOperatorExpressionRule() {
		return getXOtherOperatorExpressionAccess().getRule();
	}

	//OpOther:
	//	'->'
	//	| '..<'
	//	| '>' '..'
	//	| '..'
	//	| '=>'
	//	| '>' (=> ('>' '>') | '>') | '<' (=> ('<' '<') | '<' | '=>') | '<>'
	//	| '?:';
	public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
		return gaXbase.getOpOtherAccess();
	}
	
	public ParserRule getOpOtherRule() {
		return getOpOtherAccess().getRule();
	}

	//XAdditiveExpression XExpression:
	//	XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
	//	rightOperand=XMultiplicativeExpression)*;
	public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
		return gaXbase.getXAdditiveExpressionAccess();
	}
	
	public ParserRule getXAdditiveExpressionRule() {
		return getXAdditiveExpressionAccess().getRule();
	}

	//OpAdd:
	//	'+' | '-';
	public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
		return gaXbase.getOpAddAccess();
	}
	
	public ParserRule getOpAddRule() {
		return getOpAddAccess().getRule();
	}

	//XMultiplicativeExpression XExpression:
	//	XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
	//	rightOperand=XUnaryOperation)*;
	public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
		return gaXbase.getXMultiplicativeExpressionAccess();
	}
	
	public ParserRule getXMultiplicativeExpressionRule() {
		return getXMultiplicativeExpressionAccess().getRule();
	}

	//OpMulti:
	//	'*' | '**' | '/' | '%';
	public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
		return gaXbase.getOpMultiAccess();
	}
	
	public ParserRule getOpMultiRule() {
		return getOpMultiAccess().getRule();
	}

	//XUnaryOperation XExpression:
	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation
	//	| XCastedExpression;
	public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
		return gaXbase.getXUnaryOperationAccess();
	}
	
	public ParserRule getXUnaryOperationRule() {
		return getXUnaryOperationAccess().getRule();
	}

	//OpUnary:
	//	"!" | "-" | "+";
	public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
		return gaXbase.getOpUnaryAccess();
	}
	
	public ParserRule getOpUnaryRule() {
		return getOpUnaryAccess().getRule();
	}

	//XCastedExpression XExpression:
	//	XPostfixOperation (=> ({XCastedExpression.target=current} 'as') type=JvmTypeReference)*;
	public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
		return gaXbase.getXCastedExpressionAccess();
	}
	
	public ParserRule getXCastedExpressionRule() {
		return getXCastedExpressionAccess().getRule();
	}

	//XPostfixOperation XExpression:
	//	XMemberFeatureCall => ({XPostfixOperation.operand=current} feature=[types::JvmIdentifiableElement|OpPostfix])?;
	public XbaseGrammarAccess.XPostfixOperationElements getXPostfixOperationAccess() {
		return gaXbase.getXPostfixOperationAccess();
	}
	
	public ParserRule getXPostfixOperationRule() {
		return getXPostfixOperationAccess().getRule();
	}

	//OpPostfix:
	//	"++" | "--";
	public XbaseGrammarAccess.OpPostfixElements getOpPostfixAccess() {
		return gaXbase.getOpPostfixAccess();
	}
	
	public ParserRule getOpPostfixRule() {
		return getOpPostfixAccess().getRule();
	}

	//XMemberFeatureCall XExpression:
	//	XPrimaryExpression (=> ({XAssignment.assignable=current} ('.' | explicitStatic?="::")
	//	feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment
	//	| => ({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ('<'
	//	typeArguments+=JvmArgumentTypeReference (',' typeArguments+=JvmArgumentTypeReference)* '>')?
	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?='(' (memberCallArguments+=XShortClosure
	//	| memberCallArguments+=XExpression (',' memberCallArguments+=XExpression)*)?
	//	')')?
	//	memberCallArguments+=XClosure?)*;
	public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
		return gaXbase.getXMemberFeatureCallAccess();
	}
	
	public ParserRule getXMemberFeatureCallRule() {
		return getXMemberFeatureCallAccess().getRule();
	}

	//XPrimaryExpression XExpression:
	//	XConstructorCall | XBlockExpression | XSwitchExpression | XSynchronizedExpression | XFeatureCall | XLiteral |
	//	XIfExpression | XForLoopExpression | XBasicForLoopExpression | XWhileExpression | XDoWhileExpression |
	//	XThrowExpression | XReturnExpression | XTryCatchFinallyExpression | XParenthesizedExpression;
	public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
		return gaXbase.getXPrimaryExpressionAccess();
	}
	
	public ParserRule getXPrimaryExpressionRule() {
		return getXPrimaryExpressionAccess().getRule();
	}

	//XLiteral XExpression:
	//	XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
	public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
		return gaXbase.getXLiteralAccess();
	}
	
	public ParserRule getXLiteralRule() {
		return getXLiteralAccess().getRule();
	}

	//XCollectionLiteral:
	//	XSetLiteral | XListLiteral;
	public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
		return gaXbase.getXCollectionLiteralAccess();
	}
	
	public ParserRule getXCollectionLiteralRule() {
		return getXCollectionLiteralAccess().getRule();
	}

	//XSetLiteral:
	//	{XSetLiteral} '#' '{' (elements+=XExpression (',' elements+=XExpression)*)? '}';
	public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
		return gaXbase.getXSetLiteralAccess();
	}
	
	public ParserRule getXSetLiteralRule() {
		return getXSetLiteralAccess().getRule();
	}

	//XListLiteral:
	//	{XListLiteral} '#' '[' (elements+=XExpression (',' elements+=XExpression)*)? ']';
	public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
		return gaXbase.getXListLiteralAccess();
	}
	
	public ParserRule getXListLiteralRule() {
		return getXListLiteralAccess().getRule();
	}

	//XClosure XExpression:
	//	=> ({XClosure}
	//	'[')
	//	=> ((declaredFormalParameters+=JvmFormalParameter (',' declaredFormalParameters+=JvmFormalParameter)*)?
	//	explicitSyntax?='|')?
	//	expression=XExpressionInClosure
	//	']';
	public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
		return gaXbase.getXClosureAccess();
	}
	
	public ParserRule getXClosureRule() {
		return getXClosureAccess().getRule();
	}

	//XExpressionInClosure XExpression:
	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ';'?)*;
	public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
		return gaXbase.getXExpressionInClosureAccess();
	}
	
	public ParserRule getXExpressionInClosureRule() {
		return getXExpressionInClosureAccess().getRule();
	}

	//XShortClosure XExpression:
	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter (',' declaredFormalParameters+=JvmFormalParameter)*)?
	//	explicitSyntax?='|') expression=XExpression;
	public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
		return gaXbase.getXShortClosureAccess();
	}
	
	public ParserRule getXShortClosureRule() {
		return getXShortClosureAccess().getRule();
	}

	//XParenthesizedExpression XExpression:
	//	'(' XExpression ')';
	public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
		return gaXbase.getXParenthesizedExpressionAccess();
	}
	
	public ParserRule getXParenthesizedExpressionRule() {
		return getXParenthesizedExpressionAccess().getRule();
	}

	//XIfExpression XExpression:
	//	{XIfExpression}
	//	'if' '(' if=XExpression ')'
	//	then=XExpression (=> 'else' else=XExpression)?;
	public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
		return gaXbase.getXIfExpressionAccess();
	}
	
	public ParserRule getXIfExpressionRule() {
		return getXIfExpressionAccess().getRule();
	}

	//XSwitchExpression XExpression:
	//	{XSwitchExpression}
	//	'switch' (=> ('(' declaredParam=JvmFormalParameter ':') switch=XExpression ')'
	//	| => (declaredParam=JvmFormalParameter ':')? switch=XExpression) '{'
	//	cases+=XCasePart* ('default' ':' default=XExpression)?
	//	'}';
	public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
		return gaXbase.getXSwitchExpressionAccess();
	}
	
	public ParserRule getXSwitchExpressionRule() {
		return getXSwitchExpressionAccess().getRule();
	}

	//XCasePart:
	//	{XCasePart} typeGuard=JvmTypeReference? ('case' case=XExpression)? (':' then=XExpression | fallThrough?=',');
	public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
		return gaXbase.getXCasePartAccess();
	}
	
	public ParserRule getXCasePartRule() {
		return getXCasePartAccess().getRule();
	}

	//XForLoopExpression XExpression:
	//	=> ({XForLoopExpression}
	//	'for' '(' declaredParam=JvmFormalParameter ':') forExpression=XExpression ')'
	//	eachExpression=XExpression;
	public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
		return gaXbase.getXForLoopExpressionAccess();
	}
	
	public ParserRule getXForLoopExpressionRule() {
		return getXForLoopExpressionAccess().getRule();
	}

	//XBasicForLoopExpression XExpression:
	//	{XBasicForLoopExpression}
	//	'for' '(' (initExpressions+=XExpressionOrVarDeclaration (',' initExpressions+=XExpressionOrVarDeclaration)*)? ';'
	//	expression=XExpression? ';' (updateExpressions+=XExpression (',' updateExpressions+=XExpression)*)? ')'
	//	eachExpression=XExpression;
	public XbaseGrammarAccess.XBasicForLoopExpressionElements getXBasicForLoopExpressionAccess() {
		return gaXbase.getXBasicForLoopExpressionAccess();
	}
	
	public ParserRule getXBasicForLoopExpressionRule() {
		return getXBasicForLoopExpressionAccess().getRule();
	}

	//XWhileExpression XExpression:
	//	{XWhileExpression}
	//	'while' '(' predicate=XExpression ')'
	//	body=XExpression;
	public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
		return gaXbase.getXWhileExpressionAccess();
	}
	
	public ParserRule getXWhileExpressionRule() {
		return getXWhileExpressionAccess().getRule();
	}

	//XDoWhileExpression XExpression:
	//	{XDoWhileExpression}
	//	'do'
	//	body=XExpression
	//	'while' '(' predicate=XExpression ')';
	public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
		return gaXbase.getXDoWhileExpressionAccess();
	}
	
	public ParserRule getXDoWhileExpressionRule() {
		return getXDoWhileExpressionAccess().getRule();
	}

	//XBlockExpression XExpression:
	//	{XBlockExpression}
	//	'{' (expressions+=XExpressionOrVarDeclaration ';'?)*
	//	'}';
	public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
		return gaXbase.getXBlockExpressionAccess();
	}
	
	public ParserRule getXBlockExpressionRule() {
		return getXBlockExpressionAccess().getRule();
	}

	//XExpressionOrVarDeclaration XExpression:
	//	XVariableDeclaration | XExpression;
	public XbaseGrammarAccess.XExpressionOrVarDeclarationElements getXExpressionOrVarDeclarationAccess() {
		return gaXbase.getXExpressionOrVarDeclarationAccess();
	}
	
	public ParserRule getXExpressionOrVarDeclarationRule() {
		return getXExpressionOrVarDeclarationAccess().getRule();
	}

	//XVariableDeclaration XExpression:
	//	{XVariableDeclaration} (writeable?='var' | 'val') (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ('='
	//	right=XExpression)?;
	public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
		return gaXbase.getXVariableDeclarationAccess();
	}
	
	public ParserRule getXVariableDeclarationRule() {
		return getXVariableDeclarationAccess().getRule();
	}

	//JvmFormalParameter types::JvmFormalParameter:
	//	parameterType=JvmTypeReference? name=ValidID;
	public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
		return gaXbase.getJvmFormalParameterAccess();
	}
	
	public ParserRule getJvmFormalParameterRule() {
		return getJvmFormalParameterAccess().getRule();
	}

	//FullJvmFormalParameter types::JvmFormalParameter:
	//	parameterType=JvmTypeReference name=ValidID;
	public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
		return gaXbase.getFullJvmFormalParameterAccess();
	}
	
	public ParserRule getFullJvmFormalParameterRule() {
		return getFullJvmFormalParameterAccess().getRule();
	}

	//XFeatureCall XExpression:
	//	{XFeatureCall} ('<' typeArguments+=JvmArgumentTypeReference (',' typeArguments+=JvmArgumentTypeReference)* '>')?
	//	feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?='(' (featureCallArguments+=XShortClosure
	//	| featureCallArguments+=XExpression (',' featureCallArguments+=XExpression)*)?
	//	')')?
	//	featureCallArguments+=XClosure?;
	public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
		return gaXbase.getXFeatureCallAccess();
	}
	
	public ParserRule getXFeatureCallRule() {
		return getXFeatureCallAccess().getRule();
	}

	//FeatureCallID:
	//	ValidID | 'extends' | 'static' | 'import' | 'extension';
	public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
		return gaXbase.getFeatureCallIDAccess();
	}
	
	public ParserRule getFeatureCallIDRule() {
		return getFeatureCallIDAccess().getRule();
	}

	//IdOrSuper:
	//	FeatureCallID | 'super';
	public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
		return gaXbase.getIdOrSuperAccess();
	}
	
	public ParserRule getIdOrSuperRule() {
		return getIdOrSuperAccess().getRule();
	}

	//XConstructorCall XExpression:
	//	{XConstructorCall}
	//	'new' constructor=[types::JvmConstructor|QualifiedName] (=> '<' typeArguments+=JvmArgumentTypeReference (','
	//	typeArguments+=JvmArgumentTypeReference)* '>')? (=> explicitConstructorCall?='(' (arguments+=XShortClosure
	//	| arguments+=XExpression (',' arguments+=XExpression)*)?
	//	')')?
	//	arguments+=XClosure?;
	public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
		return gaXbase.getXConstructorCallAccess();
	}
	
	public ParserRule getXConstructorCallRule() {
		return getXConstructorCallAccess().getRule();
	}

	//XBooleanLiteral XExpression:
	//	{XBooleanLiteral} ('false' | isTrue?='true');
	public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
		return gaXbase.getXBooleanLiteralAccess();
	}
	
	public ParserRule getXBooleanLiteralRule() {
		return getXBooleanLiteralAccess().getRule();
	}

	//XNullLiteral XExpression:
	//	{XNullLiteral} 'null';
	public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
		return gaXbase.getXNullLiteralAccess();
	}
	
	public ParserRule getXNullLiteralRule() {
		return getXNullLiteralAccess().getRule();
	}

	//XNumberLiteral XExpression:
	//	{XNumberLiteral} value=Number;
	public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
		return gaXbase.getXNumberLiteralAccess();
	}
	
	public ParserRule getXNumberLiteralRule() {
		return getXNumberLiteralAccess().getRule();
	}

	//XStringLiteral XExpression:
	//	{XStringLiteral} value=STRING;
	public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
		return gaXbase.getXStringLiteralAccess();
	}
	
	public ParserRule getXStringLiteralRule() {
		return getXStringLiteralAccess().getRule();
	}

	//XTypeLiteral XExpression:
	//	{XTypeLiteral} 'typeof' '(' type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ')';
	public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
		return gaXbase.getXTypeLiteralAccess();
	}
	
	public ParserRule getXTypeLiteralRule() {
		return getXTypeLiteralAccess().getRule();
	}

	//XThrowExpression XExpression:
	//	{XThrowExpression} 'throw' expression=XExpression;
	public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
		return gaXbase.getXThrowExpressionAccess();
	}
	
	public ParserRule getXThrowExpressionRule() {
		return getXThrowExpressionAccess().getRule();
	}

	//XReturnExpression XExpression:
	//	{XReturnExpression} 'return' -> expression=XExpression?;
	public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
		return gaXbase.getXReturnExpressionAccess();
	}
	
	public ParserRule getXReturnExpressionRule() {
		return getXReturnExpressionAccess().getRule();
	}

	//XTryCatchFinallyExpression XExpression:
	//	{XTryCatchFinallyExpression}
	//	'try'
	//	expression=XExpression (catchClauses+=XCatchClause+ (=> 'finally' finallyExpression=XExpression)?
	//	| 'finally' finallyExpression=XExpression);
	public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
		return gaXbase.getXTryCatchFinallyExpressionAccess();
	}
	
	public ParserRule getXTryCatchFinallyExpressionRule() {
		return getXTryCatchFinallyExpressionAccess().getRule();
	}

	//XSynchronizedExpression XExpression:
	//	=> ({XSynchronizedExpression}
	//	'synchronized' '(') param=XExpression ')' expression=XExpression;
	public XbaseGrammarAccess.XSynchronizedExpressionElements getXSynchronizedExpressionAccess() {
		return gaXbase.getXSynchronizedExpressionAccess();
	}
	
	public ParserRule getXSynchronizedExpressionRule() {
		return getXSynchronizedExpressionAccess().getRule();
	}

	//XCatchClause:
	//	=> 'catch' '(' declaredParam=FullJvmFormalParameter ')' expression=XExpression;
	public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
		return gaXbase.getXCatchClauseAccess();
	}
	
	public ParserRule getXCatchClauseRule() {
		return getXCatchClauseAccess().getRule();
	}

	//QualifiedName:
	//	ValidID (=> '.' ValidID)*;
	public XbaseGrammarAccess.QualifiedNameElements getQualifiedNameAccess() {
		return gaXbase.getQualifiedNameAccess();
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//Number hidden():
	//	HEX | (INT | DECIMAL) ('.' (INT | DECIMAL))?;
	public XbaseGrammarAccess.NumberElements getNumberAccess() {
		return gaXbase.getNumberAccess();
	}
	
	public ParserRule getNumberRule() {
		return getNumberAccess().getRule();
	}

	///**
	// * Dummy rule, for "better" downwards compatibility, since GrammarAccess generates non-static inner classes, 
	// * which makes downstream grammars break on classloading, when a rule is removed.
	// */ StaticQualifier:
	//	(ValidID '::')+;
	public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
		return gaXbase.getStaticQualifierAccess();
	}
	
	public ParserRule getStaticQualifierRule() {
		return getStaticQualifierAccess().getRule();
	}

	//terminal HEX:
	//	('0x' | '0X') ('0'..'9' | 'a'..'f' | 'A'..'F' | '_')+ ('#' (('b' | 'B') ('i' | 'I') | ('l' | 'L')))?;
	public TerminalRule getHEXRule() {
		return gaXbase.getHEXRule();
	} 

	//terminal INT returns ecore::EInt:
	//	'0'..'9' ('0'..'9' | '_')*;
	public TerminalRule getINTRule() {
		return gaXbase.getINTRule();
	} 

	//terminal DECIMAL:
	//	INT (('e' | 'E') ('+' | '-')? INT)? (('b' | 'B') ('i' | 'I' | 'd' | 'D') | ('l' | 'L' | 'd' | 'D' | 'f' | 'F'))?;
	public TerminalRule getDECIMALRule() {
		return gaXbase.getDECIMALRule();
	} 

	//JvmTypeReference:
	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)*
	//	| XFunctionTypeRef;
	public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
		return gaXtype.getJvmTypeReferenceAccess();
	}
	
	public ParserRule getJvmTypeReferenceRule() {
		return getJvmTypeReferenceAccess().getRule();
	}

	//ArrayBrackets:
	//	'[' ']';
	public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
		return gaXtype.getArrayBracketsAccess();
	}
	
	public ParserRule getArrayBracketsRule() {
		return getArrayBracketsAccess().getRule();
	}

	//XFunctionTypeRef:
	//	('(' (paramTypes+=JvmTypeReference (',' paramTypes+=JvmTypeReference)*)? ')')? '=>' returnType=JvmTypeReference;
	public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
		return gaXtype.getXFunctionTypeRefAccess();
	}
	
	public ParserRule getXFunctionTypeRefRule() {
		return getXFunctionTypeRefAccess().getRule();
	}

	//JvmParameterizedTypeReference:
	//	type=[JvmType|super::QualifiedName] (=> '<' arguments+=JvmArgumentTypeReference (','
	//	arguments+=JvmArgumentTypeReference)* '>' (=> ({JvmInnerTypeReference.outer=current} '.') type=[JvmType|ValidID] (=>
	//	'<' arguments+=JvmArgumentTypeReference (',' arguments+=JvmArgumentTypeReference)* '>')?)*)?;
	public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
		return gaXtype.getJvmParameterizedTypeReferenceAccess();
	}
	
	public ParserRule getJvmParameterizedTypeReferenceRule() {
		return getJvmParameterizedTypeReferenceAccess().getRule();
	}

	//JvmArgumentTypeReference JvmTypeReference:
	//	JvmTypeReference | JvmWildcardTypeReference;
	public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
		return gaXtype.getJvmArgumentTypeReferenceAccess();
	}
	
	public ParserRule getJvmArgumentTypeReferenceRule() {
		return getJvmArgumentTypeReferenceAccess().getRule();
	}

	//JvmWildcardTypeReference:
	//	{JvmWildcardTypeReference} '?' (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*
	//	| constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
	public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
		return gaXtype.getJvmWildcardTypeReferenceAccess();
	}
	
	public ParserRule getJvmWildcardTypeReferenceRule() {
		return getJvmWildcardTypeReferenceAccess().getRule();
	}

	//JvmUpperBound:
	//	'extends' typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
		return gaXtype.getJvmUpperBoundAccess();
	}
	
	public ParserRule getJvmUpperBoundRule() {
		return getJvmUpperBoundAccess().getRule();
	}

	//JvmUpperBoundAnded JvmUpperBound:
	//	'&' typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
		return gaXtype.getJvmUpperBoundAndedAccess();
	}
	
	public ParserRule getJvmUpperBoundAndedRule() {
		return getJvmUpperBoundAndedAccess().getRule();
	}

	//JvmLowerBound:
	//	'super' typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
		return gaXtype.getJvmLowerBoundAccess();
	}
	
	public ParserRule getJvmLowerBoundRule() {
		return getJvmLowerBoundAccess().getRule();
	}

	//JvmLowerBoundAnded JvmLowerBound:
	//	'&' typeReference=JvmTypeReference;
	public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() {
		return gaXtype.getJvmLowerBoundAndedAccess();
	}
	
	public ParserRule getJvmLowerBoundAndedRule() {
		return getJvmLowerBoundAndedAccess().getRule();
	}

	//JvmTypeParameter:
	//	name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*)?;
	public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
		return gaXtype.getJvmTypeParameterAccess();
	}
	
	public ParserRule getJvmTypeParameterRule() {
		return getJvmTypeParameterAccess().getRule();
	}

	//QualifiedNameWithWildcard:
	//	super::QualifiedName '.' '*';
	public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
		return gaXtype.getQualifiedNameWithWildcardAccess();
	}
	
	public ParserRule getQualifiedNameWithWildcardRule() {
		return getQualifiedNameWithWildcardAccess().getRule();
	}

	//ValidID:
	//	ID;
	public XtypeGrammarAccess.ValidIDElements getValidIDAccess() {
		return gaXtype.getValidIDAccess();
	}
	
	public ParserRule getValidIDRule() {
		return getValidIDAccess().getRule();
	}

	//XImportSection:
	//	importDeclarations+=XImportDeclaration+;
	public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
		return gaXtype.getXImportSectionAccess();
	}
	
	public ParserRule getXImportSectionRule() {
		return getXImportSectionAccess().getRule();
	}

	//XImportDeclaration:
	//	'import' (static?='static' extension?='extension'? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
	//	(wildcard?='*' | memberName=ValidID) | importedType=[JvmDeclaredType|super::QualifiedName] |
	//	importedNamespace=QualifiedNameWithWildcard) ';'?;
	public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
		return gaXtype.getXImportDeclarationAccess();
	}
	
	public ParserRule getXImportDeclarationRule() {
		return getXImportDeclarationAccess().getRule();
	}

	//QualifiedNameInStaticImport:
	//	(ValidID '.')+;
	public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() {
		return gaXtype.getQualifiedNameInStaticImportAccess();
	}
	
	public ParserRule getQualifiedNameInStaticImportRule() {
		return getQualifiedNameInStaticImportAccess().getRule();
	}

	//terminal ID:
	//	'^'? ('a'..'z' | 'A'..'Z' | '$' | '_') ('a'..'z' | 'A'..'Z' | '$' | '_' | '0'..'9')*;
	public TerminalRule getIDRule() {
		return gaXtype.getIDRule();
	} 

	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"'? |
	//	"'" ('\\' . | !('\\' | "'"))* "'"?;
	public TerminalRule getSTRINGRule() {
		return gaXtype.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	'/*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return gaXtype.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return gaXtype.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaXtype.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaXtype.getANY_OTHERRule();
	} 
}
